← Back to all comparisons

Compare LLM API quotas on a unit-compatible workload

LLM API Rate Limits Compared — RPM, TPM, Concurrency, and Capacity

Rate-limit comparisons are valid only when provider, account, model, region, quota dimension, unit, and window match. Normalize RPM, input and output TPM, combined TPM, daily requests, concurrency, and batch queue limits, then use the smallest admitted volume as the binding cap. Missing or account-specific limits remain Unavailable, never unlimited. Verified 2026-09-02.

Verified 2026-09-02 — source

Normalize documented quota dimensions and test fixed workloads without treating missing caps as unlimited. Qualitative demand: a dedicated cross-provider LLM rate-limit comparison was reviewed 2026-09-02; exact US monthly volume is unavailable.

Evidence boards · verified 2026-09-02

Intent answer: Rate-limit comparisons are valid only when provider, account, model, region, quota dimension, unit, and window match. Normalize RPM, input and output TPM, combined TPM, daily requests, concurrency, and batch queue limits, then use the smallest admitted volume as the binding cap. Missing or account-specific limits remain Unavailable, never unlimited. Verified 2026-09-02.

Demand evidence: Qualitative demand: a dedicated cross-provider LLM rate-limit comparison was reviewed 2026-09-02; exact US monthly volume is unavailable.

Scope boundary: Normalize documented quota dimensions and test fixed workloads without treating missing caps as unlimited. Exact provider, seller, serving host, account/tier, endpoint, model/snapshot, region, feature, and evidence identity are required; unresolved joins render Unavailable.

Multi-dimensional quota normalizer

Deterministic formula / rule: comparable quota = exact scope + dimension + value/unit/window + burst rule + dated source; missing caps remain Unavailable.

Boundary: Owns cross-provider unit normalization; provider pages own authoritative setup and raw caps.

Frozen scenarioExact identity and evidence fieldsResultState
RPMroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=RPM; provider/account/model/region; dimension; value; unit; window; shared/model scope; burst rule; source/date; comparable state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 1 rule is reproducible but no production observation is claimed
input TPMroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=input TPM; provider/account/model/region; dimension; value; unit; window; shared/model scope; burst rule; source/date; comparable state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 1 rule is reproducible but no production observation is claimed
output TPMroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=output TPM; provider/account/model/region; dimension; value; unit; window; shared/model scope; burst rule; source/date; comparable state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 1 rule is reproducible but no production observation is claimed
combined TPMroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=combined TPM; provider/account/model/region; dimension; value; unit; window; shared/model scope; burst rule; source/date; comparable state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 1 rule is reproducible but no production observation is claimed
requests/dayroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=requests/day; provider/account/model/region; dimension; value; unit; window; shared/model scope; burst rule; source/date; comparable state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 1 rule is reproducible but no production observation is claimed
concurrency/batch queueroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=concurrency/batch queue; provider/account/model/region; dimension; value; unit; window; shared/model scope; burst rule; source/date; comparable state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 1 rule is reproducible but no production observation is claimed

First-party citation: OpenAI rate limits. Verified 2026-09-02; missing or conflicting joins fail closed.

Fixed-workload admission calculator

Deterministic formula / rule: admitted = min(request cap, input-token cap, output-token cap, concurrency cap, queue cap) after each cap is converted to the same workload unit.

Boundary: Owns capacity for frozen workload shapes, not latency, reliability, price, quality, or arbitrary forecasts.

Frozen scenarioExact identity and evidence fieldsResultState
60 short chatsroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=60 short chats; prompt/output/request/concurrency shape; every applicable cap; per-cap volume; binding dimension; deferred volume; formula; unavailable reason; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 2 rule is reproducible but no production observation is claimed
ten 128K analysesroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=ten 128K analyses; prompt/output/request/concurrency shape; every applicable cap; per-cap volume; binding dimension; deferred volume; formula; unavailable reason; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 2 rule is reproducible but no production observation is claimed
100 strict extractionsroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=100 strict extractions; prompt/output/request/concurrency shape; every applicable cap; per-cap volume; binding dimension; deferred volume; formula; unavailable reason; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 2 rule is reproducible but no production observation is claimed
20 streaming responsesroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=20 streaming responses; prompt/output/request/concurrency shape; every applicable cap; per-cap volume; binding dimension; deferred volume; formula; unavailable reason; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 2 rule is reproducible but no production observation is claimed
ten five-tool loopsroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=ten five-tool loops; prompt/output/request/concurrency shape; every applicable cap; per-cap volume; binding dimension; deferred volume; formula; unavailable reason; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 2 rule is reproducible but no production observation is claimed
one 10,000-request batchroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=one 10,000-request batch; prompt/output/request/concurrency shape; every applicable cap; per-cap volume; binding dimension; deferred volume; formula; unavailable reason; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 2 rule is reproducible but no production observation is claimed

First-party citation: Google Gemini API rate limits. Verified 2026-09-02; missing or conflicting joins fail closed.

Throttle-and-headroom evidence board

Deterministic formula / rule: headroom = documented/observed cap − admitted demand; retry only with authoritative retry-after and bounded backoff.

Boundary: Owns comparison-level throttle evidence; code-level 429 diagnosis belongs to the errors owner.

Frozen scenarioExact identity and evidence fieldsResultState
clean admissionroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=clean admission; status/header evidence when observed; retry-after; safe next action; headroom; provider-cap owner; observed versus documented state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 3 rule is reproducible but no production observation is claimed
RPM exhaustionroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=RPM exhaustion; status/header evidence when observed; retry-after; safe next action; headroom; provider-cap owner; observed versus documented state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 3 rule is reproducible but no production observation is claimed
input-TPM exhaustionroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=input-TPM exhaustion; status/header evidence when observed; retry-after; safe next action; headroom; provider-cap owner; observed versus documented state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 3 rule is reproducible but no production observation is claimed
output-TPM exhaustionroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=output-TPM exhaustion; status/header evidence when observed; retry-after; safe next action; headroom; provider-cap owner; observed versus documented state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 3 rule is reproducible but no production observation is claimed
concurrency saturationroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=concurrency saturation; status/header evidence when observed; retry-after; safe next action; headroom; provider-cap owner; observed versus documented state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — frozen rate-limits fixture requires an exact source, identity, and result receiptUNTESTED — module 3 rule is reproducible but no production observation is claimed
undocumented/account-specific limitroute=/compare/llm-api-rate-limits; owner=rate-limits; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=rate-limits; scenario=undocumented/account-specific limit; status/header evidence when observed; retry-after; safe next action; headroom; provider-cap owner; observed versus documented state; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02Unavailable — exact rate-limits evidence join is not closed for “undocumented/account-specific limit”FAIL CLOSED — manual, probe, or source evidence required

First-party citation: Anthropic API rate limits. Verified 2026-09-02; missing or conflicting joins fail closed.

Method and limitations: this board exposes deterministic rules, first-party citations, and dated evidence identities. It does not invent volume, coverage, entitlement, retention, residency, quota, capacity, feature support, quality, price, reliability, or legal conclusions. Run the rate-limits evidence flow →