SSD Nodes Learn Hosting plans →
How to do am Matt ConnorBy Matt Connor

Claude limit don hit? Wetin you fit do next

Claude session limit dey different from API HTTP 429 rate_limit_error. See why model switching no go always help, plus when to wait or slow requests.

Wetin be Claude usage limits?

Claude usage limits dey come from two separate systems, and the first work na to find out which one stop you. Claude subscription (Pro, Max, Team, or seat-based Enterprise) give you rolling usage allowance wey models dey share, apart from some model-family ceilings, and Claude chat dey share am too. So e go stop you with message like You've hit your session limit · resets 3:45pm. Current usage-based Enterprise plans na exception: dem no get included allowance, and all usage dey billed with API rates from the first token. Claude API dey measure another thing: how fast you send requests and tokens, counted per minute. E go stop you with HTTP 429 error of type rate_limit_error, usually with retry-after header wey talk how many seconds you suppose wait.

The fixes no get anything in common. Subscription limit dey about how much you don use inside one window, so you wait for reset, buy more usage, or use free limit reset if your plan offer am. API rate limit dey about your speed now, and e go clear within seconds once you slow down.

Plan allowances and rate-limit tier numbers dey change often, and wrong number worse pass no number, so we no print any one here. Use the commands further down read your own.

Wetin limit you hit? Read the exact message

Claude Code dey name the system inside the text wey e prints. Match your own before you change anything.

  • You've hit your session limit · resets 3:45pm na subscription limit. Your plan's rolling allowance for this window don finish.
  • You've hit your weekly limit · resets Mon 12:00am na the same system for the longer window.
  • You've hit your Opus limit · resets 3:45pm na subscription limit wey apply only to Opus requests. If you switch to model wey no dey inside Opus family, you fit continue work.
  • You've hit your Sonnet limit · resets 3:45pm na the same kind model-family limit, but e apply only to Sonnet requests. If you switch to model wey no dey inside Sonnet family, you fit continue work.
  • Message wey start with Fable limit reached mean say you don use the part of your weekly allowance wey Fable models fit take. If you continue with Fable, e go bill usage credits, so Claude Code go ask you to confirm first. Pick another model with /model to remain inside your plan.
  • 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 reach the limit wey dem configure for your API key, or for your Amazon Bedrock or Google Cloud project. Which one apply depend on how the client dey authenticate, because Bedrock or Vertex client dey count against your cloud project's quota instead of Anthropic organization.
  • API Error: Server is temporarily limiting requests (not your usage limit) na short-lived throttle wey no relate to your plan quota. Claude Code dey retry am automatically with backoff before e show you that line.

Subscription limits: session, weekly, and the Opus window

Pro, Max, Team or seat-based Enterprise plan get rolling usage allowance. When you don use am finish, Claude Code go block more requests until the reset time wey message show. Two things about this allowance dey cause most of the confusion.

  • You dey share am with Claude chat. Work wey you do for claude.ai dey use the same allowance as work for terminal, so if you spend heavy afternoon for chat, your coding time for evening go shorter. Every surface wey you sign in to with that account dey use the same pool, so for Linux the beta desktop app and the Claude Code CLI go spend one allowance between dem, no be one each.
  • You dey share am across models. Session and weekly limits na one pool for every model. The exceptions na model-family ceilings inside that pool: the Opus and Sonnet limits, and for Max and Premium seats, Fable allocation wey fit reach 50% of your weekly limits. For Pro and Standard seats, Fable no dey included for plan limits at all, and e dey bill to usage credits from the first request.

For Claude for Teams and seat-based Enterprise, the documented setup na per-seat allowance wey dey reset on rolling five-hour window and weekly window. You share am with Claude chat and Cowork, and the seat tier (Standard or Premium) determine the size. Current usage-based Enterprise plans dey work differently: no included allowance dey wey fit finish; usage dey bill at API rates, and the ceiling na any spend limits wey admins set for organization level and individual users. For sales-assisted plan, if spend limit stop usage, e go resume when the next billing period start, unless owner raise the limit first. For self-serve plan, usage go also stop when prepaid credit balance finish, until owner buy more. For Pro and Max, the reset time wey message print and your own /usage bars na the reliable numbers, no be figure wey you copy from blog post. If you still dey choose tier, which Claude plan you need compare wetin each one dey gate.

Wetin switching model with /model no dey restore session or weekly limit

This na the most common wrong move, and documentation talk am clear: 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, na only the model wey go answer dey change. E no change how much allowance remain, because session and weekly allowance no dey keep separately for each model. So the switch get nothing to release.

The exceptions na the model-family ceilings. If the message show You've hit your Opus limit or You've hit your Sonnet limit, then /model na the correct fix. Switch go model wey no dey that family and continue work, because na only requests for that family dem block. The Fable limit for Max and Premium seats dey work the same way: switch go another model to continue work within your plan, or continue with Fable using usage credits. But Fable dey use the shared weekly pool faster than other models, so if you switch after the Fable limit, e no fit carry you pass your overall weekly limit.

To treat the limit like bug na the second wrong move. Reinstalling or re-authenticating no dey change anything. The allowance go come back when the window reset, when you use a free limit reset, or when you buy usage credits.

Wetin to do when you reach subscription limit

  1. Read the reset time. Session window short. Weekly window no be something wey you go sit down dey wait for your desk. For Claude Code v2.1.234 or later, /rate-limit-options fit wait for the reset and continue the interrupted task by itself.
  2. If na Opus, Sonnet or Fable limit, run /model and choose model wey no dey that family.
  3. Run /usage to see your plan limits, your bars, and when dem go reset. /cost na alias for the same screen.
  4. Check Settings > Usage for claude.ai or inside Claude Desktop for a Resets section. Eligible plans sometimes get free limit reset offer, and if you click "Reset for free", e go immediately return your five-hour session limit or weekly limit, depending on which one the offer cover, to full capacity. The button no dey available inside Claude Code for terminal or IDE, or for Claude Mobile, and every offer get expiry.
  5. Run /usage-credits to continue work after you don reach the ceiling. For Pro and Max, e go open your billing settings. For Team and Enterprise, e go open your organization usage settings, or send request go your admins if you no get billing access.
  6. If you dey hit the same wall every week, the plan size no match how you dey work, and the ways to move past usage limit make sense to consider once instead of every reset.

/usage-credits need claude.ai subscription wey you don sign in through /login. E no dey available with API key authentication, because API key no get plan allowance wey e fit extend.

Usage credits get one side effect wey you suppose know first. By default, Claude Code give your main conversation one-hour prompt cache while you dey within subscription included usage, but e reduce am to five minutes once you start use credits. This mean say more turns go start cold, and Claude Code token usage go increase for the same work. Subagents dey outside the main-conversation bucket, so dem get five minutes even when you dey use plan usage. If you choose the TTL yourself with the promptCacheTtl setting or CLAUDE_CODE_PROMPT_CACHE_TTL for Claude Code v2.1.242 or later, the one-hour lifetime go remain while you dey use credits.

Messages wey look like usage limits but no be usage limits

Four Claude Code errors dey get reported as usage limits, but none of dem be usage limit.

  • Context or auto-compact warning no be usage limit. /context dey print line like Context exceeds the 200k-token limit by 94k tokens, followed by the command wey go free space, once conversation don pass the model context window. Compacting dey summarize older history to free space, but e no free: /compact dey read the conversation wey e summarize, so compacting large context na itself large request against your plan. When you want fresh start instead of continuity, /clear no cost anything.
  • Prompt is too long · automatic compaction failed: <the underlying error> mean say automatic compaction itself fail because of the error wey e name. /compact go continue fail for that same error until you resolve am.
  • Credit balance is too low mean say your Console organization don finish prepaid credits, or Claude Code dey send subscriber requests through Console API key; /status go show which credential dey active. Add credits for platform.claude.com/settings/billing, where auto-reload dey available too.
  • API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context na entitlement check, no be exhausted quota. If you select [1m] variant of Opus 4.6 or Sonnet 4.6, choose the variant wey no get [1m] suffix, or set CLAUDE_CODE_DISABLE_1M_CONTEXT=1. If e show for middle of conversation because context don pass 200K tokens, Claude Code go compact am back under the standard limit by itself. Sonnet 5 and later, Opus 4.7 and later, Haiku 5.5 and the Fable models dey run with native 1M window and no suffix dey remove; na that variable dey hold dem to 200K.

One more one dey come from API. A 413 request_too_large na size limit for one request, no be rate limit.

API rate limits: wetin the 429 dey actually count

The Messages API dey measure three things, separately for each model class.

  • requests per minute (RPM)
  • input tokens per minute (ITPM)
  • output tokens per minute (OTPM)

Your organization get spend limit too, but na different thing: maximum monthly cost for API usage. Once you reach your tier spend cap, API usage go pause until next month unless you request higher limit. E dey return as 429 rate_limit_error too, but without retry-after header and with enforced_spend_limit_reached inside error.details.error_code. No retry loop fit solve this one. Lower spend limit wey you set yourself for Console dey show differently again: requests go return HTTP 400 invalid_request_error with message wey start with You have reached your specified API usage limits, and increasing or removing the limit go restore access.

Four mechanics dey decide when the 429 go arrive.

  • Limits dey per model class. Dem apply separately to each model, so you fit use different models up to their own limits at the same time. Some families share one bucket: the 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 its own.
  • Capacity dey refill continuously. The API dey use token bucket algorithm, so capacity dey increase continuously instead of resetting for one fixed time. Limit of 60 requests per minute fit dey enforced as one request every second, so 60 requests wey you fire at once still fit fail.
  • Na only uncached input dey count toward ITPM for most models. input_tokens and cache_creation_input_tokens dey count. cache_read_input_tokens no dey count for most Claude models, with Claude Haiku 3.5 as the documented exception. Caching therefore give you more rate-limit headroom and discount too. For output, high max_tokens no dey count against OTPM, because OTPM dey count only tokens wey the system actually produce.
  • Limits dey at organization level. Dem fit give workspace lower limit, and organization-wide limits always apply even if workspace limits add up to more. If you never override a limit for workspace, e inherit from organization; e no mean say the workspace get unlimited limit.

Tiers wey dem name Start, Build, Scale and Custom set the actual numbers. Dem assign am automatically from your usage history and account standing. New organizations and organizations wey get small usage history fit start for Evaluation tier, below the standard published limits, so first 429 fit arrive earlier than table predict. Big sudden increase for usage dey trigger acceleration limits. Dem return 429 while you still dey inside your tier, so increase traffic gradually. Every published figure na ceiling: documented limits na maximum allowed usage, no be guaranteed minimums. To request more, use "Request tier increase" for the Rate limits page inside Claude Console.

Reading 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 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"
}

Na the headers carry the remaining information.

  • retry-after na the number of seconds to wait before you fit retry the request. If you retry earlier, e go fail. No be every 429 get am, and spend-cap 429 never get am.
  • anthropic-ratelimit-requests-limit, anthropic-ratelimit-requests-remaining and anthropic-ratelimit-requests-reset describe your request budget.
  • anthropic-ratelimit-input-tokens-* and anthropic-ratelimit-output-tokens-* do the same thing for ITPM and OTPM, with the same limit, remaining and reset suffixes.
  • anthropic-ratelimit-tokens-* show the values for the most restrictive limit wey dey active now.

Reset headers na RFC 3339 timestamps. Remaining token headers dey round to the nearest thousand, so treat dem as gauge. Fast mode get its own pool and its own anthropic-fast-* headers. 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 still 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.

Before you write one, check whether you really need a backoff loop. The official SDKs automatically retry temporary failures, including connection errors, rate limits and 5xx server errors, with exponential backoff, two times by default. Dem honor the retry-after header when e dey present. Each client accept one maximum-retries option to change or disable this behaviour.

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 mean say you send request too fast. 529 overloaded_error mean say API dey temporarily overloaded. E fit happen when API dey receive plenty network traffic from all users. Nothing about your key or code cause am. Retry with exponential backoff. The SDKs already do this for 5xx responses. If e no clear, check status.claude.com. 500 api_error na internal error wey you retry the same way. Neither 529 nor 500 be rate limit.

Read wetin your own limits be instead of table

For subscription, /usage na the screen wey matter. E dey show your plan usage bars and breakdown of wetin consume dem, while d or w dey switch between the last 24 hours and the last 7 days. Two things dey important. The Session block dey show API token usage and na API users e target, so subscribers fit ignore the dollar figure there. The numbers come from local session history for that machine, so usage from another device or from claude.ai no dey included.

For the API side, the Usage page for Claude Console dey draw two charts, "Rate Limit - Input Tokens" and "Rate Limit - Output Tokens". The input chart dey plot the hourly maximum of uncached input tokens per minute against your current ITPM limit. E also show your cache rate beside am. This one let you monitor when you dey near the limit instead of waiting make production hit am.

To read the limits wey you configure through a program:

curl -s https://api.anthropic.com/v1/organizations/rate_limits \
  -H "x-api-key: $ANTHROPIC_ADMIN_KEY" \
  -H "anthropic-version: 2023-06-01"

E need Admin API credentials: an Admin API key, an OAuth token with the org:admin scope, or a personal or service account key wey no dey scoped to a workspace. Workspace API keys no go work. GET /v1/organizations/workspaces/{workspace_id}/rate_limits dey do the same thing for each workspace. Both na read-only: to change a limit, use the Rate limits page for the Console.

How you fit use less, so you go meet fewer limits

Both systems dey measure the same thing underneath, so these methods go work for either one.

  • Spend fewer tokens for each turn. Continuous work sessions keep the cache warm, and /clear between unrelated tasks no dey cost anything. Claude Code token usage explain all these methods fully.
  • Reduce the effort level. The levels na low, medium, high, xhigh and max. The /effort menu still get ultracode, wey dey increase spending instead of reducing am. Deep reasoning for simple rename no dey give any benefit.
  • Reduce concurrency after 429. Lower CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY and avoid plenty parallel subagents. Run /status too: one stray ANTHROPIC_API_KEY fit route requests through low-tier key instead of your subscription.
  • Move non-interactive work go Message Batches API. E dey run large volumes asynchronously with 50% discount on input and output tokens, under separate rate limits. This one stop nightly job from competing with your session.

Work wey dey pour plenty data into context go feel this problem pass: if you dey analyze stocks and options with live market data, pull only the narrow part each question need. This one cost just a fraction of pasting complete quote and option-chain tables. Bursty work wey program dey drive instead of person suppose use API key from the start. Moving go there change how you pay and how the system meter you, because Claude API no get free tier. Max and Team plans include monthly API credits for running your own apps and agents after you link a Console organization. Those credits no cover Claude Code and no change your plan usage limits. Your first Claude API app for VPS explain key handling and retries, while long agent run fit survive dropped connection when you keep Claude Code running for VPS inside tmux.

FAQ

Why switching models no dey fix my Claude usage limit?

Because session and weekly limits dey shared across all models. That allowance belong to the plan, no be one model, so /model changes which model go answer, but e no change how much allowance remain. The exceptions na the model-family limits: You've hit your Opus limit and You've hit your Sonnet limit apply only to that family, and the Fable limit for Max and Premium seats cap Fable alone. For those ones, switching model na the documented 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: requests per minute, input tokens per minute, or output tokens per minute. The response usually carry a retry-after header wey show the seconds to wait, and retries wey happen too early go fail. The official SDKs already retry rate limits and 5xx errors with exponential backoff, twice by default, and dem honor that header when e dey present. If 429 show while you still dey within your tier limits, e point to an acceleration limit caused by sudden ramp-up. A 429 with enforced_spend_limit_reached inside error.details.error_code, wey never carry retry-after header, na the monthly spend cap. Waiting for some minutes no go clear am.

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, while d or w switches between the last 24 hours and the last 7 days. Those figures come from local session history, so dem no include usage from other devices or claude.ai. For the API, the Console shows your rate limits, and GET /v1/organizations/rate_limits returns your configured limits when you use Admin API credentials, such as an Admin API key.

I fit continue work after I hit my Claude plan limit?

Sometimes. Run /usage-credits to buy usage past the ceiling on Pro and Max, or request am from an admin on Team and Enterprise. E need a claude.ai login through /login, and e no dey available with API key authentication. If not, wait for the reset time. You fit use a free limit reset if Settings > Usage for claude.ai or Claude Desktop offer one. You fit also switch model if na the Opus, Sonnet, or Fable limit you hit, or move the work to an API key, wey dey measure usage per minute instead of per window.