Rate limits

API requests are rate limited per API key, using a per-minute sliding window. The limit scales with your plan.

Limits by plan

PlanRequests per minute
Advanced30
Business60
Business 200K90
Business 300K120
Unlimited180

info

There are no per-call charges and no overage fees — ever. If you need more throughput, the limit rises with your plan tier rather than billing you per request.

Rate-limit headers

Every /v1 response includes an X-RateLimit-Limit header with your key's per-minute ceiling. When you exceed the limit, the response is 429 Too Many Requests and includes a Retry-After header, in seconds — wait that long, then retry.

X-RateLimit-Limit: 60
Retry-After: 12

note

Only X-RateLimit-Limit (on every response) and Retry-After (on a 429) are provided. There are no X-RateLimit-Remaining or X-RateLimit-Reset headers, so pace your requests against the per-minute limit rather than a live remaining count.

Handling a 429

When you get a 429, read the Retry-After value and sleep for that many seconds before retrying. A small helper keeps this out of your query code:

  • JavaScript
  • Python
  • cURL

Staying under the limit

  • Batch your reporting into fewer, larger queries rather than many small ones — one GROUP BY store query returns every store at once.
  • Cache results you re-use within the same minute instead of re-querying.
  • Spread scheduled jobs out over the minute rather than firing them all at once.