Rate limits

Each key may make 120 requests per minute. Every response tells you how much budget is left.

The limit#

Over the limit, requests return 429 rate_limited with a Retry-After: 60 header. The limit is per key, so two keys on the same workspace each get their own budget.

json
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded: 120 requests per minute per key."
  }
}

Headers#

Rate limit headers
NameTypeDescription
X-RateLimit-LimitrequiredheaderAlways 120.
X-RateLimit-RemainingrequiredheaderRequests left in the current minute.
Retry-AfteroptionalheaderOnly on 429. Seconds to wait before retrying.
Example response headershttp
HTTP/1.1 200 OK
Content-Type: application/json
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117

Sync jobs should page with limit=200 and back off when X-RateLimit-Remaining gets low rather than waiting for a 429.