OpenAI Rate Limits by Tier
What are OpenAI's API rate limits?
OpenAI's entry tier (Free) allows 3 requests/min and 40,000 tokens/min for documented default/model family. Limits scale up through Tier 3 as cumulative spend and account age increase — see the full table below, verified 2026-08-14.
Limits by tier
| Tier | Qualification | Model class | RPM | TPM | RPD | Concurrent |
|---|---|---|---|---|---|---|
| Free | No payment method on file | documented default/model family | 3 | 40,000 | 200 | — |
| Tier 1 | $5 cumulative spend and account-age requirement | documented default/model family | 500 | 200,000 | 10000 | — |
| Tier 3 | $100 cumulative spend and account-age requirement | documented default/model family | 5000 | 2,000,000 | — | — |
— means not documented by OpenAI, never a guess.
What this means for your workload
Classification at volume: 116 calls/min and 60,320 tokens/min at the production profile.
At the production volume in classification-at-volume (116 calls/min; 60,320 tokens/min), the documented cap is sufficient for RPM 500 and TPM 200,000.
Response headers
retry-after | Seconds to wait before retrying, when supplied with a 429 |
rate-limit response headers | Provider-specific remaining and reset counters when documented |
When you exceed the limit
OpenAI returns HTTP 429.
Use jittered exponential backoff and inspect the rate-limit headers.
FAQ
What happens when I exceed OpenAI's rate limit?
OpenAI returns HTTP 429 with a retry-after header telling you how long to wait. Use jittered exponential backoff and inspect the rate-limit headers.
How do I request a rate limit increase on OpenAI?
Request one from the account dashboard: https://platform.openai.com/settings/organization/limits
Batch 48 · openai rate-limit decision and evidence modules. Surface verification: 2026-08-14. These are dated, route-local fixtures, not live quota claims.
OpenAI limit-scope resolver
Frozen openai evidence board: two organizations · three projects · Responses · Realtime · Batch · image · fine-tuning jobs. Formula / decision rule: binding ceiling = min(all documented buckets sharing the request scope)
| Frozen fixture | Inputs and observation | Formula / boundary | State |
|---|---|---|---|
batch48-openai-m1-r1two organizations · three projects | principal/account=joined; endpoint=joined; model/pool=joined; bucket/window=joined; observed=2026-08-14 The primary identity and product joins are present for this frozen fixture. | binding ceiling = min(all documented buckets sharing the request scope) A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | PASS WITH SCOPE — frozen observation only. |
batch48-openai-m1-r2Responses · Realtime · Batch | request/response/error=joined; limit/remaining/reset=observed; retry identity=joined; region=joined The response evidence is usable only for the named bucket and time window; no neighboring provider is borrowed. | binding ceiling = min(all documented buckets sharing the request scope) A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | PASS WITH LIMIT — dated evidence only. |
batch48-openai-m1-r3image · fine-tuning jobs | workload=joined; prompt/output reserve=explicit; shared pool=declared; unknown=Unavailable; owner=platform Admission or recovery is withheld where the account-specific value or side-effect identity is absent. | binding ceiling = min(all documented buckets sharing the request scope) A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | UNAVAILABLE — live owner evidence required. |
Provenance: Frozen Batch 48 openai fixture: module 1 observation and calculation. First-party evidence checked 2026-08-14; unresolved joins fail closed. Surface verification date: 2026-08-14. OpenAI API rate-limit docs (first-party source)
429 cause-and-retry classifier
Frozen openai evidence board: requests-per-minute · tokens-per-minute · project/organization spend · exhausted credit · capacity overload · invalid organization · partial stream. Formula / decision rule: retry = transient throttle ∧ retry authority ∧ idempotent replay; billing failures are terminal
| Frozen fixture | Inputs and observation | Formula / boundary | State |
|---|---|---|---|
batch48-openai-m2-r1requests-per-minute · tokens-per-minute | principal/account=joined; endpoint=joined; model/pool=joined; bucket/window=joined; observed=2026-08-14 The primary identity and product joins are present for this frozen fixture. | retry = transient throttle ∧ retry authority ∧ idempotent replay; billing failures are terminal A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | PASS WITH SCOPE — frozen observation only. |
batch48-openai-m2-r2project/organization spend · exhausted credit | request/response/error=joined; limit/remaining/reset=observed; retry identity=joined; region=joined The response evidence is usable only for the named bucket and time window; no neighboring provider is borrowed. | retry = transient throttle ∧ retry authority ∧ idempotent replay; billing failures are terminal A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | PASS WITH LIMIT — dated evidence only. |
batch48-openai-m2-r3capacity overload · invalid organization · partial stream | workload=joined; prompt/output reserve=explicit; shared pool=declared; unknown=Unavailable; owner=platform Admission or recovery is withheld where the account-specific value or side-effect identity is absent. | retry = transient throttle ∧ retry authority ∧ idempotent replay; billing failures are terminal A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | UNAVAILABLE — live owner evidence required. |
Provenance: Frozen Batch 48 openai fixture: module 2 observation and calculation. First-party evidence checked 2026-08-14; unresolved joins fail closed. Surface verification date: 2026-08-14. OpenAI API rate-limit docs (first-party source)
Reservation-aware admission scheduler
Frozen openai evidence board: short chat · 120K prompt · long output · five-tool loop · Realtime · batch · mixed-project burst. Formula / decision rule: admit only if every documented bucket has headroom
| Frozen fixture | Inputs and observation | Formula / boundary | State |
|---|---|---|---|
batch48-openai-m3-r1short chat · 120K prompt | principal/account=joined; endpoint=joined; model/pool=joined; bucket/window=joined; observed=2026-08-14 The primary identity and product joins are present for this frozen fixture. | admit only if every documented bucket has headroom A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | PASS WITH SCOPE — frozen observation only. |
batch48-openai-m3-r2long output · five-tool loop | request/response/error=joined; limit/remaining/reset=observed; retry identity=joined; region=joined The response evidence is usable only for the named bucket and time window; no neighboring provider is borrowed. | admit only if every documented bucket has headroom A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | PASS WITH LIMIT — dated evidence only. |
batch48-openai-m3-r3Realtime · batch · mixed-project burst | workload=joined; prompt/output reserve=explicit; shared pool=declared; unknown=Unavailable; owner=platform Admission or recovery is withheld where the account-specific value or side-effect identity is absent. | admit only if every documented bucket has headroom A missing provider, product, account, endpoint, model, bucket, or time-window join fails closed; no value is copied across routes. | UNAVAILABLE — live owner evidence required. |
Provenance: Frozen Batch 48 openai fixture: module 3 observation and calculation. First-party evidence checked 2026-08-14; unresolved joins fail closed. Surface verification date: 2026-08-14. OpenAI API rate-limit docs (first-party source)
