Rate limits

Per-token request limits, sized to the store's plan.

Every token has a request limit per second. Limits scale with the store's subscription plan. Exceeding the limit returns 429; the response includes a Retry-After header indicating how many seconds to wait.

Per-plan limits#

Plan

Sustained

Burst

Starter

2 req/s

40 requests

Pro

2 req/s

40 requests

Advanced

3 req/s

60 requests

Each app installed on a store gets its own limit, independent of other apps installed on the same store. Store admin tokens share a single limit per store across all admins.

Response headers#

Every response — success or 429 — carries the current limit state.

Header

Value

X-RateLimit-Limit

The maximum burst capacity for this token.

X-RateLimit-Remaining

Requests still available before the next 429.

X-RateLimit-Reset

Unix epoch seconds when the bucket fully refills.

Retry-After

On 429 only: seconds to wait before retrying.

Hitting the limit#

When the limit is exceeded the response is 429 with the RATE_LIMITED error code and a Retry-After header.

http
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 40
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1778796300
Retry-After: 12

{"success": false, "error": {"code": "RATE_LIMITED", "message": "Too many requests."}}