Docs / Guides
Rate limits
Most calls count as one request, however many cards they ask for. Limits depend on your plan.
Limits by plan
| Plan | Per minute | Per day | Per month | Cards per request | History cards | Sold history | Cards a day | Commercial use |
|---|---|---|---|---|---|---|---|---|
| Free | 10 | 100 | 1,500 | 1 | 1 | 7 days | No limit | No |
| Starter | 50 | 1,000 | 12,000 | 20 | 1 | 30 days | 1,000 | Yes |
| Pro | 100 | 6,000 | 60,000 | 100 | 20 | 1 year | No limit | Yes |
| Business | 250 | 25,000 | 250,000 | 200 | 20 | 1 year | No limit | Yes |
| Enterprise | 500 | 100,000 | 1,000,000 | 250 | 20 | 1 year | No limit | Yes |
Days reset at midnight UTC and months on the 1st. Requests turned away at a limit are never counted. Compare plans.
What counts
- A price lookup, a bulk lookup, a search or a scan: one request, however many cards.
- Sold history for
7dor30d: one request, however many cards. - Sold history for
3m,6mor1y: one request for each card. - On Starter, the cards in every answer also count toward 1,000 cards a day. A scan counts as one card.
- Checking your usage at
/v1/usagenever counts.
Pacing headers
Every answer tells you how close you are, so your app can slow down before it is turned away.
| Header | Meaning |
|---|---|
RateLimit-Limit | Requests allowed per minute on your plan. |
RateLimit-Remaining | Requests left this minute. |
RateLimit-Reset | Seconds until this minute's count resets. |
X-Requests-Remaining-Today | Requests left today (UTC). |
X-Requests-Remaining-Month | Requests left this month (UTC). |
X-Cards-Remaining-Today | Starter only: cards left today (UTC). |
Retry-After | On a 429 answer: seconds to wait before trying again. |
Staying under the limits
- Use the bulk lookups to price many cards in one request.
- Store
card_ids instead of searching again. - Fetch a card's longer history once and keep it; after that, a
7dlookup now and then keeps it current. - Market prices and recent sales refresh every 6 hours, and live listings and sold history every day or two, so cache answers for at least an hour.
- On a 429, wait the seconds in
Retry-Afterbefore trying again.