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 |
|---|---|
|
The maximum burst capacity for this token. |
|
Requests still available before the next |
|
Unix epoch seconds when the bucket fully refills. |
|
On |
Hitting the limit#
When the limit is exceeded the response is 429 with the RATE_LIMITED error code and a Retry-After header.
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."}}