On a subscription, a Claude rate limit is a usage window: a rolling 5-hour session limit, a weekly limit, and a model-scoped limit, all shared between Claude chat and Claude Code. On the API it is throughput: requests per minute, input tokens per minute, and output tokens per minute, set by your organisation usage tier and reported in response headers. A subscription limit means wait or change how you work. An API limit resolves in seconds and retries itself.
- Subscription limits are measured in hours and weeks. API limits are measured per minute.
- API capacity uses a token bucket: it replenishes continuously, it does not reset on the hour.
- Cached input tokens do not count toward ITPM on most models, so caching raises effective throughput.
- A
429carriesretry-afterand is not your plan quota. - A stray
ANTHROPIC_API_KEYsilently moves you from one system to the other.
Two systems, one name
Which one applies to you is decided by how you authenticated, not by which product you opened. Claude Code signed in with a Claude subscription is on the first. Claude Code with an API key in the environment is on the second, and so is any application you build.
| Subscription limits | API rate limits | |
|---|---|---|
| Unit | Usage over a window | Requests and tokens per minute |
| Windows | Rolling 5 hours, plus a week | One minute, continuously replenished |
| Set by | Your plan | Your organisation usage tier |
| Error | You've hit your session limit | 429 with retry-after |
| Time to clear | Hours or days | Seconds |
| Fix | Wait, change model defaults, or add capacity | Back off, or request a higher tier |
| Shared with chat | Yes | No |
The subscription side
Three caps run at once on a Claude subscription, and the same allowance covers Claude chat, Claude Code, and Cowork. They are enforced per account, so parallel sessions divide one pool rather than each getting their own.
The exact strings Claude Code prints, as of August 2026.
| Cap | Message | Does /model help? |
|---|---|---|
| Session | You've hit your session limit · resets 3:45pm | No. Shared across all models |
| Weekly | You've hit your weekly limit · resets Mon 12:00am | No. Shared across all models |
| Model | You've hit your Opus limit · resets 3:45pm | Yes. Switch and keep working |
The current session limit is rolling
This is the part people consistently misread. The five-hour limit is not a bucket that empties at a fixed clock time. It is a trailing measurement of what you consumed over the past five hours, so if you burned most of it between 09:00 and 11:00, capacity returns gradually through the early afternoon rather than all at once. Sitting and waiting for a reset moment is the wrong mental model; the message gives a time because that is when enough will have aged out, not because a counter flips.
/usage # plan bars, plus attribution by skill, subagent, and MCP server
/status # which credential is actually active
/usage-credits # buy past the limit on Pro and Max, at standard API rates
The API side
The Claude API meters three things per model, per minute: requests (RPM), input tokens (ITPM), and output tokens (OTPM). Exceeding any one produces a 429 naming which limit you crossed, with a retry-after header giving the seconds to wait. Limits apply separately for each model, so you can drive several models up to their respective limits at once.
Standard Messages API limits by usage tier, August 2026. RPM / ITPM / OTPM.
| Model | Start | Build | Scale |
|---|---|---|---|
| Claude Opus 5 | 1,000 / 2M / 400k | 5,000 / 5M / 1M | 10,000 / 10M / 2M |
| Claude Sonnet 5 | 1,000 / 2M / 400k | 5,000 / 5M / 1M | 10,000 / 10M / 2M |
| Claude Haiku 4.5 | 1,000 / 2M / 400k | 5,000 / 5M / 1M | 10,000 / 10M / 2M |
| Claude Fable 5 | 1,000 / 500k / 100k | 2,000 / 1.5M / 300k | 4,000 / 4M / 800k |
- Tiers are assigned automatically from usage history and account standing, and you move up over time. New organisations may start in an Evaluation tier with limits below the standard table while history is established.
- Capacity is a token bucket. It replenishes continuously up to your maximum rather than resetting at fixed intervals, which is why a 60 RPM limit can be enforced as roughly one request per second and a burst still fails.
- Acceleration limits are a separate cause of 429s. A sharp increase in an organisation's usage can trigger them even below the published numbers. Ramp traffic gradually.
- Spend caps are not rate limits. Start is $500/month, Build $1,000, Scale $200,000. Hitting one pauses API usage until the next calendar month unless you request more.
Reading the headers
Every API response carries the limit, the remaining amount, and the reset time. Anything that shows you live Claude headroom is reading these, because there is no other source for the number.
The headers that matter. There are more, including Priority Tier variants.
| Header | Meaning |
|---|---|
retry-after | Seconds to wait. Retrying earlier will fail |
anthropic-ratelimit-requests-remaining | Requests left before you are limited |
anthropic-ratelimit-requests-reset | When requests fully replenish, RFC 3339 |
anthropic-ratelimit-input-tokens-remaining | Input tokens left, rounded to the nearest thousand |
anthropic-ratelimit-output-tokens-remaining | Output tokens left, rounded to the nearest thousand |
anthropic-ratelimit-tokens-remaining | The most restrictive limit currently in effect |
curl -sS -D - -o /dev/null https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-haiku-4-5","max_tokens":8,"messages":[{"role":"user","content":"hi"}]}' \
| grep -i ratelimit
Cache-aware ITPM: the lever most people miss
Most providers count every token toward a combined per-minute limit. Anthropic does not. On most Claude models only uncached input tokens count toward ITPM, which makes prompt caching a throughput lever, not just a cost one.
| Token field | Counts toward ITPM? |
|---|---|
input_tokens (after the last cache breakpoint) | Yes |
cache_creation_input_tokens | Yes |
cache_read_input_tokens | No, on most models |
The arithmetic Anthropic gives: with a 2,000,000 ITPM limit and an 80% cache hit rate you can effectively process 10,000,000 input tokens per minute, because the 8M read from cache do not count. Cached input is also billed at a reduced rate, so the same change moves both numbers.
Telling them apart in ten seconds
| You see | System | Do |
|---|---|---|
| A named cap and a reset time | Subscription | Wait, switch model if it names one, or add credits |
429 plus retry-after | API throughput | It retries itself. Reduce concurrency if it persists |
529 or Overloaded | Neither. Service capacity | Check the status page; try another model |
Credit balance is too low | Neither. Billing | Add credits, or sign in with a subscription |
| Billed per token on a subscription | You are on the API side | unset ANTHROPIC_API_KEY, then /login |
echo "${ANTHROPIC_API_KEY:-(unset)}" # unset means subscription billing
claude
/status # confirm the active credential
Questions people ask
It depends which system you are on. A Claude subscription meters usage against a rolling 5-hour session limit and weekly limits. The Claude API meters throughput per minute as requests, input tokens, and output tokens, set by your organisation usage tier.
It is the rolling five-hour usage window on your subscription. It is a trailing measurement rather than a counter that resets, so headroom returns gradually as earlier usage ages past five hours.
Requests per minute, input tokens per minute, and output tokens per minute, applied separately per model and set by your usage tier. On the Start tier that is 1,000 RPM with 2M ITPM and 400k OTPM for Opus 5, Sonnet 5, and Haiku 4.5 as of August 2026.
Two common reasons. Capacity is a token bucket enforced over short intervals, so a burst can exceed a per-minute limit within a few seconds. Separately, a sharp increase in an organisation's usage can trigger acceleration limits below the published numbers.
On most models, no. Only uncached input tokens and cache-creation tokens count toward ITPM, so a high cache hit rate raises effective throughput considerably. Claude Haiku 3.5 is the exception and does count cache reads.
No. A session limit is your plan allowance over a five-hour window and clears in hours. A 429 is API throughput, clears in seconds, and is retried automatically.
On the API, tiers rise automatically with usage history, or you can use Request rate limit increase on the Rate limits page in the Console. On a subscription, upgrade the plan, turn on usage credits, or run a second account so parallel sessions stop dividing one pool.
Sources
Every figure above was read from these pages on August 2026. Vendors reprice without notice; if you find a stale number, tell us.
- Anthropic API rate limits tiers, header names, cache-aware ITPM
- Claude Code error reference exact session, weekly, 429 and 529 messages
- Claude Code: manage costs effectively which ceiling a developer hit, and concurrency controls