Errors & rate limits
Standard HTTP status codes; 429 carries Retry-After.
| Status | Meaning |
|---|---|
| 400 | Bad request — malformed body, missing messages, a missing or unknown model id, or an unsupported parameter value. |
| 401 | Unauthorized — missing or invalid API key. |
| 404 | Not found — the model cannot take the input you sent, for example an image sent to a text-only model. |
| 429 | Rate limited — slow down; honor Retry-After. |
| 500 | Server error — retry with backoff. |
Rate limits
Two limits apply, and exceeding either returns 429 with Retry-After. Requests per minute are counted per account, across all your keys. Concurrent requests are counted per API key. There is no tokens-per-minute cap. Both limits can be raised for your account on request.
- 500 requests per minute per account, shared across all your keys
- 20 concurrent requests per API key
- No tokens-per-minute cap
Determinism
Responses are not bit-for-bit reproducible: GPU batching and floating-point numerics vary between runs, so identical requests can return different completions even with identical parameters. Design retries, caching, and tests accordingly.
API compatibility notes
- The user parameter is accepted but ignored.
- The suffix parameter of the Completions API is not supported.
- The n parameter must be 1. Higher values are rejected with a 400 rather than ignored.
- best_of is not supported and is silently ignored.