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:

HeaderDescription
X-RateLimit-LimitRequests allowed per rolling hour.
X-RateLimit-RemainingRequests left after this one.
X-RateLimit-ResetSeconds 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.

Was this page helpful?