Claude usage limit reach, wetin I go do?
No be switching models dey fix am. See how Claude subscription limits differ from API 429 error and how to check your exact reset time for Claude Code.
Wetin be Claude usage limits?
Claude usage limits dey work for two different systems. First thing na to check which one stop you. Claude subscription (Pro, Max, Team, or Enterprise) dey give you rolling usage allowance wey dem share for all models and Claude chat, so e go stop you with message like You've hit your session limit · resets 3:45pm. Claude API dey measure another thing: how fast you dey send requests and tokens, wey dem dey count per minute. E go stop you with HTTP 429 error of type rate_limit_error and one retry-after header wey go tell you how many seconds you need to wait.
The ways to fix dem no be the same. Subscription limit dey talk about how much you don use inside one window, so you go wait for reset or buy more usage. API rate limit dey talk about your speed right now, and e go clear for seconds once you slow down.
Plan allowances and rate-limit tier numbers dey change many times, and to use wrong number bad pass to no get any number, so we no print any for here. Read your own with the commands wey dey below.
Which limit you hit? Read the exact message
Claude Code go name the system inside the text wey e print. Check yours well before you change anything.
You've hit your session limit · resets 3:45pmna subscription limit. You don finish the allowance for your plan for this window.You've hit your weekly limit · resets Mon 12:00amna the same system but for the longer window.You've hit your Opus limit · resets 3:45pmna subscription limit wey apply only to Opus requests. Na for this one case switching model go help.API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.na API rate limit. You don hit the limit wey dem set for your API key, or for your Amazon Bedrock or Google Cloud project.API Error: Server is temporarily limiting requests (not your usage limit)na short-lived throttle wey no get connection to your plan quota. Claude Code go retry am automatically with backoff before e show you that line.
Subscription limits: session, weekly, and the Opus window
Subscription plan get one rolling usage allowance. Once you finish am, Claude Code go block all new requests until the reset time wey the message show. Two things about that allowance dey cause wahala for many people.
- E dey share with Claude chat. Work wey you do for claude.ai dey take from the same allowance wey you dey use for terminal. So, if you do heavy work for chat for afternoon, your coding evening go short.
- E dey share across models. Session and weekly limits no get per-model budget, except for the Opus limit.
For Claude for Teams and Enterprise, the rule na say every seat get allowance. E dey reset for one rolling five-hour window and one weekly window. E dey share with Claude chat and Cowork, and the size depend on the seat tier (Standard or Premium). For Pro and Max, the reset time wey the message print and your own /usage bars na dem be the correct numbers, no be any figure wey dem copy from blog post. If you still dey choose tier, which Claude plan you need go compare wetin each one dey limit.
Why switching model with /model no dey restore access
Dis one na di most common mistake, and di documentation clear about am: session and weekly limits dey shared across all models, so switching models no dey restore access. If you pick smaller model after your session window don finish, you just dey change which model go answer. E no dey change how much allowance remain, because allowance no dey hold for single model, so di switch no get anything to release.
Di exception na di Opus limit, wey na model-specific ceiling. If di message show You've hit your Opus limit, den /model na di correct fix. Switch to another model and continue work, because na only Opus requests dem block.
To think say di limit na bug na di second mistake. Reinstalling or re-authenticating no dey change anything. Di allowance go come back when di window reset, or when you buy usage credits.
Wetin you go do when you reach subscription limit
- Read when the reset time go reach. Session window dey short. Weekly window no be something wey you go sit for desk dey wait.
- If na Opus limit, run
/modeland pick another model. - Run
/usageto see your plan limits, your bars, and when dem go reset./costna alias for that same screen. - Run
/usage-creditsto continue work pass the ceiling. For Pro and Max, e go open your billing settings. For Team and Enterprise, e go open your organization usage settings, or e go send request to your admins if you no get billing access. - If you dey hit the same wall every week, your plan no big enough for how you dey work.
/usage-credits need Claude.ai subscription wey sign in through /login. E no dey available with API key authentication, because API key no get plan allowance wey you fit extend.
Usage credits get one side effect wey important to know first. Prompt cache lifetime na one hour for subscription, but e go drop to five minutes once you start to use credits, so more turns go start cold and Claude Code token usage go climb for the same work.
Messages wey look like usage limits but dem no be dem
Four Claude Code errors dey show as usage limits, but none of dem be usage limits.
- Context or auto-compact warning no be usage limit.
/contextgo print line likeContext exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.once conversation don pass the model context window. System go summarize old history to free space, and your plan allowance no go change. Error during compaction: Conversation too long. Press esc twice to go up a few messages and try again.mean say/compactfail, because no enough free context left to hold the summary wey e wan produce.Credit balance is too lowmean say your Console organization don finish prepaid credits. Add credits for platform.claude.com/settings/billing, wey get auto-reload too.API Error: Usage credits required for 1M context · run /usage-credits to turn them on, or /model to switch to standard contextna entitlement check, no be say quota don finish. Pick the model variant wey no get[1m]suffix, or setCLAUDE_CODE_DISABLE_1M_CONTEXT=1.
One more error dey come from API. 413 request_too_large na size limit for single request, no be rate limit.
API rate limits: wetin 429 dey count exactly
Messages API dey measure three things, and dem dey count dem separately for every model class.
- requests per minute (RPM)
- input tokens per minute (ITPM)
- output tokens per minute (OTPM)
Your organization get spend limit too, and dat one na different thing: e na maximum monthly cost for API usage. Once you reach di spend cap for your tier, API usage go pause until next month, unless you request higher limit. No retry loop fit solve dat one.
Four mechanics dey decide when 429 go show.
- Limits na per model class. Dem dey apply separately for every model, so you fit use different models up to their respective limits at di same time. Some families share one bucket: di Opus rate limit na total for Claude Opus 4.8, Opus 4.7, Opus 4.6 and Opus 4.5, while Claude Sonnet 5 get im own.
- Capacity dey refill continuously. API dey use token bucket algorithm, so capacity dey replenish continuously instead of to reset at one fixed moment. If limit na 60 requests per minute, dem fit enforce am as one request per second, so if you fire 60 requests at once, dem go still fail.
- Only uncached input dey count for ITPM for most models.
input_tokensandcache_creation_input_tokensdey count.cache_read_input_tokensno dey count for most Claude models, but Claude Haiku 3.5 na di documented exception. So, caching dey give you extra headroom for rate-limit and e dey give discount too. For di output side, highmax_tokensno dey count against OTPM, because OTPM dey count only di tokens wey dem actually produce. - Limits dey live at di organization level. Dem fit give one workspace lower limit, and organization-wide limits go always apply even if workspace limits add up to more. If you no override limit for one workspace, e go inherit am from di organization, e no go be unlimited.
Tiers wey dem call Start, Build, Scale and Custom dey set di actual numbers, dem dey assign dem automatically based on your usage history and account standing. New organizations fit start below di standard published limits, so di first 429 fit show earlier than wetin table predict. If usage increase sharp-sharp, e dey trigger acceleration limits, wey dey return 429 even if you still dey inside your tier, so make you ramp up traffic gradually. Every published figure na ceiling: documented limits na maximum allowed usage, dem no be guaranteed minimums. If you want ask for more, use di "Request rate limit increase" control for di Limits page inside di Claude Console.
Reading a 429: retry-after, the headers, and SDK retries
Every API error dey return the same envelope: one nested error object wey carry the type and the message, plus one top-level request_id.
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "<names the rate limit you exceeded>"
},
"request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}The headers carry the rest.
retry-afterna the number of seconds you must wait before you fit retry the request. If you retry too early, e go fail.anthropic-ratelimit-requests-limit,anthropic-ratelimit-requests-remainingandanthropic-ratelimit-requests-resetdey show your request budget.anthropic-ratelimit-input-tokens-*andanthropic-ratelimit-output-tokens-*dey do the same thing for ITPM and OTPM, with the same limit, remaining and reset suffixes.anthropic-ratelimit-tokens-*dey show the values for the most restrictive limit wey dey work now.
Reset headers na RFC 3339 timestamps. Remaining token headers dey round to the nearest thousand, so use dem as gauge. Fast mode get its own pool and its own anthropic-fast-* headers. You fit read all of dem from any successful call:
curl -s -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-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"hi"}]}' \
| grep -i 'ratelimit\|retry-after\|request-id'Every response also carry one unique request-id header, like req_018EeWyXxfu5pfWkrYcMdjWG. E dey appear as request_id for error bodies and as _request_id for Python and TypeScript SDK responses. Quote am when you contact support.
Check if you really need backoff loop before you write one. The official SDKs dey automatically retry transient failures, including connection errors, rate limits and 5xx server errors, with exponential backoff, twice by default, and dem dey follow the retry-after header if e dey present. Each client get maximum-retries option to change or disable that behavior.
import anthropic
client = anthropic.Anthropic(max_retries=5) # the SDK default is 2
try:
msg = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "hello"}],
)
except anthropic.RateLimitError as err:
headers = err.response.headers
print("still limited after retries; wait", headers.get("retry-after"), "seconds")
print("request id:", headers.get("request-id"))529 overloaded_error no be your fault
429 error mean say you dey move too fast. 529 overloaded_error mean say API dey overload for small time, and e fit happen when many users dey use API at the same time. Your key or your code no cause am. Retry with exponential backoff, wey all SDKs dey do for 5xx responses, and check status.claude.com if the error no gree go. 500 api_error na internal error wey you go retry the same way, and neither one na rate limit.
Read your own limits instead of a table
For subscription, na /usage be the screen wey matter. E go show you how much of your plan you don use, and e go show you wetin consume am. You fit use d or w switch between last 24 hours and last 7 days. Two things wey you must know: The Session block show API token usage, so na for API users; subscribers fit ignore the dollar figure for there. The numbers dey come from local session history for that machine, so usage from another device or from claude.ai no go show for there.
For API side, the Usage page for Claude Console draw two charts: "Rate Limit - Input Tokens" and "Rate Limit - Output Tokens". The input chart show the hourly maximum of uncached input tokens per minute against your current ITPM limit, and e go show your cache rate beside am. This way, you go see when you dey near limit before you reach am for production.
To read your configured limits programmatically:
curl -s https://api.anthropic.com/v1/organizations/rate_limits \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY" \
-H "anthropic-version: 2023-06-01"You go need Admin API key, and GET /v1/organizations/workspaces/{workspace_id}/rate_limits dey do the same thing for each workspace. Both of dem na read-only: if you want change limit, use the Limits tab for Console.
Use less, so you no go hit limit
Both systems dey measure the same thing for under, so these levers dey work for any of dem.
- Spend fewer tokens per turn. If you dey use am continuously, the cache go stay warm, and
/clearbetween unrelated tasks no go cost anything. Claude Code token usage explain all these levers well. - Lower the effort. The levels na
low,medium,high,xhighandmax. The/effortmenu also getultracode, wey dey increase spend instead of to reduce am. No use deep reasoning for simple mechanical rename work. - Cut concurrency after a 429. Reduce
CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCYand no use many parallel subagents. Run/statustoo: one strayANTHROPIC_API_KEYfit route requests through low-tier key instead of your subscription. - Move non-interactive work to the Message Batches API. E dey run large volumes asynchronously with 50% discount for input and output tokens, under its own rate limits, so nightly job no go dey compete with your session.
Work wey bursty and driven by program instead of person suppose dey use API key from start. Your first Claude API app on a VPS explain how to handle keys and retries, and long agent run go survive if connection drop if you keep Claude Code running on a VPS inside tmux.
FAQ
Why switching models no fix my Claude usage limit?
Because session and weekly limits dey shared for all models. The allowance belong to the plan, no be to one model, so /model na just to change which model go answer, e no dey change how much allowance remain. Only one exception na You've hit your Opus limit, wey only apply to Opus requests. For that one, switching model na the official fix.
Wetin 429 rate_limit_error mean, and how long I suppose wait?
E mean say your account don hit rate limit for that model class: e fit be requests per minute, input tokens per minute, or output tokens per minute. The response go carry retry-after header wey go tell you how many seconds you suppose wait, and if you try again too early, e go fail. The official SDKs dey already retry rate limits and 5xx errors with exponential backoff, twice by default, and dem dey follow that header. If you see 429 while you still dey inside your tier limits, e mean say you don dey too fast for sudden ramp.
How I fit see my Claude usage limits and when dem go reset?
For Claude Code, run /usage to see your plan bars, reset times, and usage breakdown; /cost na alias, and d or w dey switch between last 24 hours and last 7 days. Those figures dey come from local session history, so dem no go show usage from other devices or from claude.ai. For the API, the Console dey chart your rate limits, and GET /v1/organizations/rate_limits go return your configured limits if you use Admin API key.
I fit continue work after I don hit my Claude plan limit?
Sometimes. Run /usage-credits to buy extra usage pass the ceiling for Pro and Max, or to ask admin for Team and Enterprise; you go need to login to claude.ai through /login and e no dey work with API key authentication. If you no do that one, wait for reset time, switch model if na Opus limit you hit, or move the work to an API key, wey dey meter per minute instead of per window.