Account limits apply across API keys and browser Chat. Open Settings for your current tier and limits.
Initial limits
| Requests / minute | Concurrent requests | Daily spend ceiling |
|---|---|---|
| 60 | 4 | $50.00 |
Usage tiers
Net purchased credits determine earned tiers. New top-up value becomes eligible after 72 hours. Referral credits and operator adjustments do not increase your earned tier. Refunds can lower it. Operator overrides may change your limits.
Higher tiers allow more requests, concurrency, and daily spending. Model capacity may impose lower concurrency limits.
Handle a limit
Rate, concurrency, and daily spend limits return 429 with a Retry-After header in seconds. The error code says which limit you reached: requests_per_minute_limit_exceeded, concurrency_limit_exceeded or daily_spend_limit_exceeded. Key credit limits return 403. A daily spend ceiling is a limit, not a required purchase.
Response headers
Authenticated Chat Completions, Responses, and Messages replies include these fields, also on streams and limit errors:
RateLimit-Policy: "requests";q=60;w=60;qu="requests", "concurrency";q=4;qu="concurrent-requests"
RateLimit: "requests";r=58;t=42, "concurrency";r=3
RateLimit-Policy names the account's quotas: requests allows q attempts per w seconds; concurrency allows q running requests. All keys share these limits. Values reflect your tier and any overrides.
RateLimit gives remaining quota r. For requests, t is seconds until reset. Counts are admission snapshots and include this request. Concurrency has no timed reset; slots return as requests finish. Its remaining count is omitted when admission has not checked it. Daily spend is separate, resets at 00:00 UTC, and is not included in these fields.
Stop sending when r=0. Wait for the request reset or a running request to finish. On 429, follow Retry-After in seconds; it matches t for a request-rate refusal and takes priority for other limits. Available quota is a hint, not a guarantee. Invalid or missing keys receive no rate-limit fields.