Every big LLM API caps how fast you can call it, and each provider does it differently. Hit the cap and your app gets a 429 error.
Claude counts input and output tokens separately, OpenAI renamed its tiers this year, and Gemini limits per project. xAI counts requests per second, and DeepSeek only caps concurrency.
This guide compares all five as of November 2026, using each official rate limit page. You get the limits, how to move up, which headers to read, and one retry strategy for all.
- Claude: tiers are Evaluation, Start, Build, Scale and Custom. Opus 5.5 on Start gets 4,000 RPM and 2M input tokens per minute. Cache reads do not count.
- OpenAI: tiers are now Free, Build ($5), Launch ($100) and Grow ($500). Limits are per organization and project.
- Gemini: Free, Tier 1, 2 and 3. Limits are per project, and daily quotas reset at midnight Pacific.
- xAI: Tier 0 to Tier 4 by spend since January 1, 2026. grok-4.7 starts at 150 RPS and 50M TPM.
- DeepSeek: no tiers, just concurrency: 2,500 on
deepseek-flashand 500 ondeepseek-v4-pro. - Retry rule everywhere: honor
retry-after, then exponential backoff with jitter. Never retry spend-cap or billing errors.
Rate Limits Compared at a Glance
The short words matter, so here they are once. RPM is requests per minute, TPM is tokens per minute, and RPD is requests per day. Claude splits TPM into input (ITPM) and output (OTPM).
| Provider | Tiers | What is limited | Scope | How you move up |
|---|---|---|---|---|
| Claude (Anthropic) | Evaluation, Start, Build, Scale, Custom | RPM, ITPM, OTPM per model class | Organization | Automatic by usage history, or “Request tier increase” |
| OpenAI | Free, Build, Launch, Grow | RPM, RPD, TPM, TPD, IPM | Organization and project | Automatic by total credit purchases |
| Gemini (Google) | Free, Tier 1, 2, 3 | RPM, TPM, RPD, IPM, spend per 10 min | Google Cloud project | Billing linked, then spend plus days |
| xAI (Grok) | Tier 0 to 4, Enterprise | RPS and TPM | Team | Automatic by spend since Jan 1, 2026 |
| DeepSeek | None | Concurrent requests | Account | Free capacity expansion request |
Claude API Rate Limits and Tiers
Anthropic uses named tiers and measures each model class in RPM, ITPM and OTPM. Limits refill continuously with a token bucket, so capacity comes back gradually instead of resetting once a minute.
Claude tiers and spend caps
- Evaluation: new or low-history organizations start here, with limits below the standard ones. They rise automatically as history builds.
- Start: $500 monthly spend cap.
- Build: $1,000 monthly spend cap.
- Scale: $200,000 monthly spend cap.
- Custom: no cap, arranged with the account team.
Claude limits for current models
| Model | Start (RPM / ITPM / OTPM) | Build | Scale |
|---|---|---|---|
| Opus 5.5 | 4,000 / 2M / 400K | 10,000 / 5M / 1M | 13,000 / 10M / 2M |
| Sonnet 5.5 | 4,000 / 2M / 400K | 10,000 / 5M / 1M | 13,000 / 10M / 2M |
| Haiku 5.5 | 4,000 / 2M / 400K | 10,000 / 5M / 1M | 13,000 / 10M / 2M |
| Fable 5.x (shared by 5 and 5.1) | 4,000 / 500K / 100K | 10,000 / 1.5M / 300K | 13,000 / 4M / 800K |
Older models such as Opus 5 and Sonnet 5 have 1,000 RPM on Start. The Message Batches API has its own limit, shared across models: 1,000 RPM on Start, 2,000 on Build and 4,000 on Scale.
Tip: On Claude, cache_read_input_tokens do not count toward ITPM. A big cached document plus a short question uses almost none of your input limit. See my prompt caching guide.
Claude 429 vs 529
- 429 rate_limit_error: you hit a rate limit or your tier’s monthly spend cap. A spend-cap 429 has no
retry-afterand keeps failing until access resumes. - 529 overloaded_error: Anthropic is busy across all users. It is not your limit.
- Acceleration limits: a sharp jump in traffic can also trigger 429s, so ramp up gradually.
Full fixes are in my Claude API 429 and 529 guide.
OpenAI API Rate Limits and Tiers
OpenAI now uses four named tiers instead of the old numbered ones. Limits apply at the organization and project level and vary by model, so check Settings, then Organization, then Limits in the dashboard for your exact numbers.
| Tier | Qualification | Monthly usage limit | Astra, Sol, Terra (RPM / TPM) | Luna (RPM / TPM) |
|---|---|---|---|---|
| Free | Allowed geography | $100 | Lower, see dashboard | Lower, see dashboard |
| Build | $5 total credit purchases | $500 | 5,000 / 1M | 5,000 / 2M |
| Launch | $100 total credit purchases | $5,000 | 10,000 / 4M | 10,000 / 10M |
| Grow | $500 total credit purchases | $200,000 | 15,000 / 40M | 30,000 / 180M |
OpenAI rules worth knowing
- Failed requests count: a rejected call still uses your per-minute limit.
- 429 slow_down: your request rate rose too fast. Ramp more gently.
- 503 server_is_overloaded: the model is temporarily busy, not your limit.
- Above 1M input TPM: OpenAI asks you to raise traffic by no more than 50% every 15 minutes.
- Nested retries: if your code retries, turn off SDK retries or count them, so you do not multiply requests.
Prices for each family are in my OpenAI API pricing guide.
Gemini API Rate Limits and Tiers
Google applies limits per project, not per API key. Requests per day reset at midnight Pacific time. Paid tiers also have a rolling 10-minute spend limit.
| Tier | How to qualify | Billing cap | Spend per 10 min |
|---|---|---|---|
| Free | Active project or free trial | N/A | N/A |
| Tier 1 | Link an active billing account | $250 | $10 |
| Tier 2 | $100 paid and 3 days since first payment | $2,000 | $50 |
| Tier 3 | $1,000 paid and 30 days since first payment | $20,000 to $100,000+ | $200 |
Google does not print per-model RPM numbers on its docs page any more. The rate limit page in Google AI Studio is the source of truth for your project. Free to Tier 1 is usually instant, and later upgrades apply within about 10 minutes.
- Grounding with Google Search: 1,500 requests per day per project by default on Gemini 3 and newer.
- Batch API: 100 concurrent batches, 2 GB input files. Gemini 4 Argon allows 5M enqueued tokens on Tier 1.
- Priority inference: 0.3x the standard limit by default.
Hitting a Gemini limit? My Gemini API errors guide covers 429 RESOURCE_EXHAUSTED in detail.
xAI Grok API Rate Limits and Tiers
xAI counts requests per second (RPS) and tokens per minute per team. Its TPM counts prompt, completion, reasoning and cached prompt tokens together. Tiers depend on total spend since January 1, 2026, and they never go down.
| Tier | Spend needed | grok-4.7 (RPS / TPM) |
|---|---|---|
| Tier 0 | $0 | 150 / 50M |
| Tier 1 | $50 | 172 / 53M |
| Tier 2 | $250 | 208 / 60M |
| Tier 3 | $1,000 | 312 / 74M |
| Tier 4 | $5,000 | 500 / 100M |
grok-4.5 and grok-4.6 share the same numbers. Older models such as grok-4.3 start lower, at 37 RPS and 10M TPM. Your exact limits are on the Models page of the xAI Console.
Note: xAI does not document rate limit response headers. Use backoff on 429 instead of reading remaining counts. Prices are in my Grok pricing guide.
DeepSeek API Limits
DeepSeek has no usage tiers. It limits how many requests you have in flight at once, per account, whatever key you use.
- deepseek-flash: 2,500 concurrent requests.
- deepseek-v4-pro: 500 concurrent requests.
- Going over: HTTP 429.
- Under heavy load: requests queue with keep-alive lines. If inference has not started in 10 minutes, the connection closes.
- More capacity: submit an expansion request. DeepSeek says it costs nothing extra.
See my DeepSeek API errors guide for every code and the retry code.
Rate Limit Headers by Provider
Reading headers lets you slow down before you hit a 429. Here is what each provider sends.
| Provider | Headers |
|---|---|
| Claude | retry-after, anthropic-ratelimit-requests-remaining, anthropic-ratelimit-input-tokens-remaining, anthropic-ratelimit-output-tokens-remaining, plus matching -limit and -reset (RFC 3339 time) |
| OpenAI | Retry-After, x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens, x-ratelimit-reset-requests, x-ratelimit-reset-tokens, plus project token headers |
| Gemini | No remaining-count headers documented. Read the 429 error message and check AI Studio. |
| xAI | None documented |
| DeepSeek | None documented. Track your own in-flight count. |
How to Move Up a Tier
- Claude: keep using the API. Tiers rise automatically with history. For more, click Request tier increase on the Rate limits page in the Claude Console.
- OpenAI: buy credits. $5 total gets Build, $100 gets Launch, $500 gets Grow. You can also use Upgrade tier in Settings, Organization, Limits.
- Gemini: link billing in Google AI Studio for Tier 1. Spend $100 and wait 3 days for Tier 2, or $1,000 and 30 days for Tier 3.
- xAI: spend $50, $250, $1,000 or $5,000 to reach Tiers 1 to 4. Ask in the Console for more without extra spend.
- DeepSeek: send a capacity expansion request.
Warning: Do not spread traffic across many accounts or projects just to dodge limits. It can break provider terms. Ask for an increase instead.
A Retry Strategy That Works Everywhere
The same five rules work for all five providers. OpenAI and Anthropic both document them, and Google’s troubleshooting guide says the same.
- Honor retry-after first: treat it as a minimum wait, then add a little random delay.
- Exponential backoff with jitter: 1s, 2s, 4s, 8s, plus a random fraction.
- Retry only temporary errors: 408, 429, 500, 502, 503, 504 and Claude’s 529.
- Never retry billing errors: spend caps, 402 balance errors and quota errors.
- Cap attempts and total time, and turn off SDK retries if you write your own.
import random, time
RETRYABLE = {408, 429, 500, 502, 503, 504, 529}
def with_retry(call, max_tries=6, max_wait=60):
for attempt in range(max_tries):
try:
return call()
except Exception as e:
status = getattr(e, "status_code", None)
if status not in RETRYABLE or attempt == max_tries - 1:
raise
headers = getattr(getattr(e, "response", None), "headers", {}) or {}
ra = headers.get("retry-after")
try:
wait = float(ra)
except (TypeError, ValueError):
wait = min(max_wait, 2 ** attempt)
wait += random.uniform(0, 1)
print(f"HTTP {status}: waiting {wait:.1f}s")
time.sleep(wait)
# Works with the OpenAI SDK (OpenAI, xAI, DeepSeek) and the Anthropic SDK.
# Set max_retries=0 on the client so retries are not doubled.
Use it like with_retry(lambda: client.messages.create(...)). For a full cost view across these providers, see the AI API pricing comparison.
Troubleshooting: Common Problems and Fixes
- 429 on Claude with low traffic: you may be in the Evaluation tier, or bursting. 60 RPM can be enforced as 1 request per second.
- Claude 429 that never clears: check for
enforced_spend_limit_reached. That is your monthly cap, not a rate limit. - OpenAI model missing: model access is separate from rate limits. Your tier may allow the limit but not the model yet.
- Gemini 429 after making a new key: limits are per project, so all keys share one quota.
- Gemini 429 with quota left: you may have hit the 10-minute spend cap or the Search grounding daily limit.
- xAI 429 on a single burst: RPS is derived from your per-minute budget, so short bursts hit it first. Smooth your traffic.
- DeepSeek 429 with few users: long streaming calls hold concurrency slots. Close streams you no longer need.
- Retries make it worse: SDK retries plus your own loop multiply calls. Turn one of them off.
Frequently Asked Questions
Which LLM API has the highest default rate limits?
For a brand new account, DeepSeek (2,500 concurrent requests on Flash) and xAI (150 RPS on grok-4.7 at Tier 0) start highest. Claude, OpenAI and Gemini raise limits as you spend.
Do cached tokens count toward rate limits?
On Claude, cache reads do not count toward ITPM. On xAI, cached prompt tokens do count toward TPM. Check each provider’s page for the rest.
What are the new OpenAI usage tiers?
OpenAI now uses Free, Build, Launch and Grow. Build needs $5 in total credit purchases, Launch $100 and Grow $500.
Are Gemini limits per API key?
No. Gemini rate limits apply per Google Cloud project, so every key in a project shares the same quota.
What is the difference between Claude 429 and 529?
A 429 means you hit your own rate limit or spend cap. A 529 means Anthropic’s API is overloaded for everyone, so just retry later.
How do I get a higher rate limit without spending more?
Claude has a Request tier increase button, xAI accepts Console requests, Gemini paid tiers have an increase form, and DeepSeek takes free expansion requests.
Should I read headers or just retry on 429?
Do both where you can. Claude and OpenAI send remaining-count headers so you can slow down early. For Gemini, xAI and DeepSeek, rely on backoff.




