Rate limits
Rate limits keep one runaway client from starving everyone else. They are generous: most apps never reach them.
The limits
- Requests per key — each API key can send up to 6,000 requests a minute by default. Spread heavy traffic across keys in different projects if one service needs more, or contact support.
- Work in progress — very large numbers of requests in flight at once are briefly throttled.
- Failed authentication — repeated requests with an invalid key are slowed down.
There are no token-per-minute limits and no daily caps.
When you hit a limit
You get a 429 with a Retry-After header giving the seconds to wait:
{ "error": { "message": "Too many requests. Try again shortly." } }
Wait that long, then retry. The OpenAI and Anthropic SDKs do this for you. See errors for a retry loop.
Staying under the limit
- Use one key per service, so a busy batch job doesn't throttle your web app.
- Queue batch work and send it at a steady rate instead of all at once.
- Batch inputs where the endpoint allows it — embeddings take an array of texts in one request.
- Use streaming for long replies rather than polling.
- Don't retry
4xxerrors other than429; they won't succeed on a retry.