Rate limits
Last updated · Changelog · OpenAPI spec · Markdown
Each account can make 1,000 requests per rolling hour, counted across all of its API keys. Rate limits are separate from credits: a request that costs 0 credits still counts as one request. To fetch many products without using up requests, pass up to 100 comma-separated identifiers in one call or use POST /products/batch.
Every authenticated response includes these headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Requests allowed per rolling hour. |
X-RateLimit-Remaining | Requests left after this one. |
X-RateLimit-Reset | Seconds until your oldest request in the window ages out and frees a slot. |
The same remaining count is in meta.rate_limit_remaining on every response, error responses included:
{
"meta": {
"credits_used": 2,
"credits_remaining": 998,
"rate_limit_remaining": 958
}
}When you run out, the API answers HTTP 429 with error code ERR_RATE_LIMIT and a Retry-After header (in seconds). Wait that long before retrying. Requests rejected with 429 don't count against your limit, so retrying won't extend the wait. If you need a higher limit, contact business@shopsavvy.com.