Trade Caravan

Sign in with your Google account.
First time here? Enter the invite code your host gave you.

Enter your username or Telegram chat ID to log in.
No account yet? Message the bot: /start …

Link Telegram

Connect your Telegram chat so price alerts can reach you. This window updates automatically once you're linked.

Option A — open the bot
➡ Open Telegram & tap Start
Option B — if Start does nothing

If you've used the bot before, the Start button may not work. Open the bot chat and send this command instead:

/link …

Settings

Set up alerts in three quick steps, then keep this dialog handy for diagnostics. Owner-only controls appear at the bottom.

Get started Do steps 1 → 3 in order

1 · Add your CardTrader token

Required for price scanning — without it nothing is ever checked, and this is the #1 reason alerts don't arrive. In CardTrader: Account menu → API / Apps → generate a token (a long JWT with dots). API access may need a CardTrader Pro account. CardTrader API docs

Checking…

2 · Connect Telegram

Alerts are delivered through Telegram, a free messaging app — this is how a price drop reaches your phone. If you're new to it, follow these steps:

  1. Get Telegram — install the app on your phone or computer from telegram.org and create a free account (just a phone number).
  2. Click “🔗 Link Telegram” below. A small window opens with two ways to connect:
    • Open the bot — opens our TradeCaravan bot inside Telegram; just tap the Start button at the bottom of that chat.
    • If “Start” does nothing (this happens if you've opened the bot before), copy the /link … command shown in that window and send it as a message to the bot.
  3. Wait a moment. The window flips to “linked” on its own once it's done — no need to come back here.

Once linked, hit “📨 Test Telegram” to send yourself a message and confirm it arrives.

Checking…

3 · Build your watchlist

Close this dialog, search a card, and add it. Set a price threshold on each card (or a notification price filter via the ⚙️ beside the bulk-threshold bar) and you'll get a Telegram alert when it drops below that price on CardTrader Zero.

Welcome guide

The “how it works” card new users see on their first visit. Closed it and want another read? Bring it back here.

Diagnostics

Scan every tracked card right now and send a per-card report to Telegram — shows which cards have CT Zero listings, which don't, and any errors. Use this if alerts seem quiet or a price looks stuck.

Owner tools Only you can see this section

👋 New user test page

See the app exactly as a first-time visitor does: the welcome guide reopened on the default Scan decklist tab. Nothing is deleted — your token, watchlist and settings are untouched, and a banner at the top lets you leave the preview.

⏰ Refresh schedule

Pause automatic price refreshes during a daily window — handy for saving bandwidth overnight. Manual Poll now and everything in this dialog still work while paused. The window is read in the timezone below, so when you travel you can either hit Use my current timezone to shift it, or just untick to refresh 24/7.

From to
Timezone
✓ Saved

🔑 CardTrader API token (shared fallback)

The operator token used by the weekly blueprint-index and top-deals builds, and as the fallback for any user who hasn't added their own (a user's own token always wins). Setting it here overrides the server's CT_API_TOKEN and survives redeploys — no SSH needed.

Checking…

🎯 Top-deal thresholds

What counts as a deal in the weekly top-deals scan — applied on the next build. The CardTrader↔CardMarket market is efficient, so stricter values give a shorter, higher-quality list.

Discount window
Price limits
Notification
Include in scan
✓ Saved

Invite codes

Each code admits exactly one new Google account, then is used up.

All tracking data

Download every user's watchlist & price history before a redeploy, then restore it after.

Clear old price history

Delete every recorded price point before a chosen date & time, across all users. Use this when an old ↓ below avg reading is being skewed by stale data left over from before a redeploy — the average is computed over all stored points, and history isn't cleared when a card is removed and re-added.

Storage health

Confirms your data sits on a persistent volume and won't be wiped on the next deploy.

Trade Caravan banner

Trade Caravan

CardTrader Zero Scanner

Find deals · track cards · get Telegram alerts when prices drop

Notification price filters

Mute trivial price wobble. For each price tier, set how much a card's price must move (in €) before you get another Telegram alert. Example: a 50€ card moving 30¢ isn't worth a ping, but a 1€ card moving 30¢ is. Up to 5 tiers · leave a Min or Max blank for “no limit”.

✓ Saved
Card-wide
Price history

Welcome to Trade Caravan — Magic cards below market price

Trade Caravan compares live CardTrader Zero listings against the CardMarket price and tells you when something is cheap — on screen, or by Telegram while you're away.

1 Find cards. Paste a whole list into Scan decklist, search a single card in Browse, or just open Deals for the biggest discounts we've already found.
2 Set what "cheap" means. Pick which conditions you'll accept (NM, SP…) and how far below CardMarket a price has to be. Anything that clears your bar is highlighted.
3 Track them. Star a card to put it on your Watchlist. Prices are re-checked for you around the clock, and every price is charted over time.
4 Get pinged & buy. Connect Telegram in ⚙️ Settings for alerts on drops. Bought one? Mark it Purchased to track your spend and total savings.
CT Zero = CardTrader Zero: many sellers, one order, free combined shipping  ·  CM = CardMarket, used as the reference "market" price  ·  Conditions: NM (Near Mint) › SP (Slightly Played) › MP (Moderately Played) › PL (Played) › PO (Poor)  ·  Nothing is bought here — Trade Caravan finds the deal and links you straight to the listing.

Close this with ✕ — you can bring it back any time from ⚙️ Settings → Show the welcome guide again.

Top deals
Loading…
Sort: Per row:

Paste a decklist and scan for CT Zero deals.
Cards below your threshold are highlighted.
Reads Moxfield, Archidekt, MTGGoldfish, TappedOut, Deckstats and MTGO lists, ManaBox / Moxfield / Archidekt CSV exports, or just one card name per line.

% off CM
% off CM
% off CM
% off CM
% off CM
Tap a grade to track it. 0% = any CT price at/below CardMarket. A deal fires when any enabled grade clears its own %.
All printings · scan summary & cross-print deals
Scanning printings…
Track:
% off CM
% off CM
% off CM
% off CM
% off CM
Blank = use the scan threshold for that grade.
Browse by:
Sort by: Per row:
Switches every card's CT Zero language.
Near Mint
Slightly Played
Moderately Played
Played
Poor
Show CT Zero prices for these grades.

Tracked cards

% off CM
% off CM
% off CM
% off CM
% off CM
Blank = leave that grade unchanged.
Re-tracks each selected printing in this language.
Show:
Spend & savings per month
Paid Saved — full bar = CardMarket value
Purchased cards
Moxfield · Archidekt · MTGO
the same list as a file
ManaBox collection import
Lines read 1 Card Name (SET) 123, which Moxfield and Archidekt both paste-import. Copies of the same printing are merged into one line.
Savings = CM price − price paid, so fill CM in to have it counted.