Founder's PriceUp to 53% off Pro, Business and Enterprise for our first customers, locked in while you stay subscribed paid plans30 spots leftClaim your spot
DocsRate limits

Docs / Guides

Rate limits

Most calls count as one request, however many cards they ask for. Limits depend on your plan.

Limits by plan

PlanPer minutePer dayPer monthCards per requestHistory cardsSold historyCards a dayCommercial use
Free101001,500117 daysNo limitNo
Starter501,00012,00020130 days1,000Yes
Pro1006,00060,000100201 yearNo limitYes
Business25025,000250,000200201 yearNo limitYes
Enterprise500100,0001,000,000250201 yearNo limitYes

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 7d or 30d: one request, however many cards.
  • Sold history for 3m, 6m or 1y: 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/usage never counts.

Pacing headers

Every answer tells you how close you are, so your app can slow down before it is turned away.

HeaderMeaning
RateLimit-LimitRequests allowed per minute on your plan.
RateLimit-RemainingRequests left this minute.
RateLimit-ResetSeconds until this minute's count resets.
X-Requests-Remaining-TodayRequests left today (UTC).
X-Requests-Remaining-MonthRequests left this month (UTC).
X-Cards-Remaining-TodayStarter only: cards left today (UTC).
Retry-AfterOn 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 7d lookup 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-After before trying again.