Skip to content

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 4xx errors other than 429; they won't succeed on a retry.