Rate limits
Each API key has its own rate limit. Limits are enforced at the edge, before a request reaches any product, so throttling never consumes product capacity or counts as billable usage.
How limits work
A key's limit is a token bucket: it has a steady refill rate (tokens per second) and a burst capacity (the most tokens it can hold at once). Each request spends one token. A short spike can draw down the burst; sustained traffic is held to the refill rate. Buckets refill continuously, so capacity returns gradually rather than resetting on a fixed clock.
The specific rate and burst come from the key's plan and are visible in the console.
When you are throttled
A request that finds the bucket empty is rejected with 429 Too Many Requests
and a Retry-After header:
HTTP/1.1 429 Too Many Requests
Retry-After: 1
Content-Type: application/json
{ "error": { "code": "rate_limited", "message": "rate limit exceeded" } }
Retry-Afteris a whole number of seconds to wait before retrying. It is always at least1.- A
429is transient — the request was not processed and was not metered.
Handling 429
- Respect
Retry-After. Wait at least the indicated number of seconds before retrying the request. - Back off exponentially with jitter if you hit repeated
429s, so many clients don't retry in lockstep. - Smooth your traffic where you can — spreading requests over time keeps you under the refill rate instead of exhausting the burst and stalling.
The same Retry-After convention applies to any future endpoint; see
Errors for the full list of status codes.