/api/ has a shared limit per IP address.
Four limits are settings on your key: the time between pack purchases, packs per day, cards per day and card spend per day. The numbers below are the defaults, and we can change any of them for your key on request: contact us if yours don’t fit your volume. The limits on a single request, on shipments and on test accounts are the same for every key.
Per endpoint
Card buys have no per-minute limit, and sell-backs have no rate limit per key. Reads don’t either, but keys are monitored: a full catalog sync a few times an hour is fine; polling every few seconds is not. To hear about your own orders without polling, use a webhook.
Card lookups (Get a card, Find a card by cert and Card activity) are cached for up to a minute, and Price history for up to five minutes, so asking more often than that returns the same answer.
Shared limit per IP
Everything under/api/ has a shared limit of 300 requests a minute per IP address, on top of the per-key limits on this page. That covers every partner endpoint, the MCP server and Public card metadata. It counts by IP address, not by key, so several keys behind one address share it. Keep your traffic well under it. A refusal here may not look like the responses on this page, so treat any refusal as a reason to back off.
Pack purchases
- Speed: one purchase request per key every 60 seconds. One request can open several packs, so a bot that wants five packs sends one request with
quantity: 5, not five requests. - Daily ceiling: 100 packs per UTC day, counting completed orders. A request is refused whole if it would take you over: with 97 used, a request for 5 is a
429even though 3 would fit. - Per request: 1–10 packs of one type. List packs gives each pack’s
max_quantity:1for the Starter, sealed mystery packs and community packs, and5for watch packs. More than that is a400.
Idempotency-Key) skips both checks: you can always find out what your first attempt did.
429 RATE_LIMITED
429 DAILY_LIMIT_REACHED
Card purchases
- Cards: 25 per UTC day.
- Spend: $50,000 per UTC day: each card's price plus its $1 buyer fee.
max_price + $1, so parallel orders can’t all pass the check and overshoot the cap. A refused order charges nothing and frees its order id, so you can send it again after resets_at.
429 DAILY_CARD_LIMIT_REACHED
Shipments
- Per day: 50 shipments per key per UTC day. A shipment we refused doesn’t count, and a refused shipment charges nothing and frees its id.
- Estimates: 60 per key per minute, because each one is a live call to the carrier. One with
cover_amountis two calls, so it counts as two. The count is kept per server, so the exact point you’re refused can vary. - Per request: 1–10 cards to one address, and a
max_costof at most $10,000.
429 DAILY_SHIPMENT_LIMIT_REACHED
Which 429s send Retry-After
When we can’t count
If we can’t read your usage for today, a purchase or shipment is refused with a503 and nothing is charged: the limit checks fail closed rather than let an order through uncounted. Retry with backoff, with the same id.
Check where you stand
Get account returns your pack usage (limits, including next_purchase_at, the earliest your next pack purchase is allowed) and your card usage (card_limits), so a bot can plan its next purchase without hitting a 429. It doesn’t count shipments.
