Claudeの利用上限に達したときの対処法
`You've hit your session limit`や`You've hit your weekly limit`の違いを確認し、Claudeのサブスク上限とAPIのHTTP 429を見分けて、リセット待ちや送信速度の調整など次の対処を解説します。
Claude の利用制限とは何ですか?
Claude の利用制限には、別々の2つの仕組みがあります。まず、どちらの制限に達したのかを確認してください。Claude のサブスクリプション(Pro、Max、Team、または seat ベースの Enterprise)には、一定期間内で利用できる枠があります。この枠は、いくつかのモデルファミリー固有の上限を除き、モデル間で共有されます。また、Claude chat とも共有されるため、You've hit your session limit · resets 3:45pmのようなメッセージが表示されて利用できなくなります。現在の従量課金型 Enterprise プランは例外です。含まれる利用枠はなく、最初の token からすべての利用に API 料金が課金されます。一方、Claude API が計測するのは別のものです。リクエストと token を1分あたりどれだけ速く送信したかを計測します。上限に達すると、通常は何秒待つべきかを示す retry-after header とともに、rate_limit_error タイプの HTTP 429 error が返ります。
この2つの制限に対する対処方法は異なります。サブスクリプションの制限は、一定期間内にどれだけ利用したかによるものです。そのため、リセットを待つ、追加の利用枠を購入する、またはプランで提供されている場合は無料の制限リセットを使用します。API の rate limit は、その時点での送信速度に関する制限です。送信速度を下げれば、数秒で解除されます。
プランの利用枠と rate-limit tier の番号は頻繁に変わります。不正確な番号を載せるより、番号を載せないほうが適切なため、ここでは記載しません。自分の現在の値は、後述のコマンドで確認してください。
どの制限に達したかを確認するには、正確なメッセージを読みます
Claude Code は、出力するテキスト内で該当するシステムを示します。設定を変更する前に、自分のメッセージと照合してください。
You've hit your session limit · resets 3:45pmはサブスクリプションの制限です。この期間におけるプランのローリング利用枠を使い切っています。You've hit your weekly limit · resets Mon 12:00amは、より長い期間に適用される同じシステムです。You've hit your Opus limit · resets 3:45pmは Opus のリクエストだけに適用されるサブスクリプションの制限です。Opus ファミリー以外のモデルに切り替えると、作業を続けられます。You've hit your Sonnet limit · resets 3:45pmは同じ種類のモデルファミリー制限で、Sonnet のリクエストだけに適用されます。Sonnet ファミリー以外のモデルに切り替えると、作業を続けられます。Fable limit reachedで始まるメッセージは、Fable モデルが利用できる週間利用枠の割合を使い切ったことを示します。Fable で続行すると利用クレジットが課金されるため、Claude Code は最初に確認を求めます。/modelで別のモデルを選ぶと、プランの範囲内に収められます。API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.は API のレート制限です。API key、Amazon Bedrock、または Google Cloud project に設定された制限に達しています。どれが適用されるかは、クライアントの認証方法によって決まります。Bedrock または Vertex クライアントでは、Anthropic organization ではなく、使用する cloud project の quota に対して計測されます。API Error: Server is temporarily limiting requests (not your usage limit)は、プランの quota とは無関係な短時間のスロットルです。この行を表示する前に、Claude Code が backoff 付きで自動的に再試行します。
サブスクリプションの上限: セッション、週次、Opus ウィンドウ
Pro、Max、Team、またはシートベースのEnterpriseプランには、ローリング方式の使用量上限が含まれます。上限に達すると、メッセージに表示されたリセット時刻までClaude Codeは追加のリクエストをブロックします。この上限には、混乱を招きやすい特徴が2つあります。
- Claude chatと共有されます。claude.aiで行った作業は、ターミナルでの作業と同じ上限を消費します。そのため、午後にchatを大量に使うと、夜にコーディングで使える量が減ります。そのアカウントでサインインしているすべての環境が同じプールを消費します。したがって、Linuxではベータ版デスクトップアプリとClaude Code CLIが1つの上限を共有し、それぞれに別の上限があるわけではありません。
- モデル間でも共有されます。セッション上限と週次上限は、すべてのモデルで共通の1つのプールです。例外は、このプール内にあるモデルファミリーごとの上限です。これにはOpusとSonnetの上限、MaxおよびPremiumシートにおける、週次上限の最大50%までのFable割り当てが含まれます。ProおよびStandardシートでは、Fableはプラン上限に含まれず、最初のリクエストから使用量クレジットに対して課金されます。
Claude for TeamsとシートベースのEnterpriseでは、公開されている仕組みは、ローリング5時間ウィンドウと週次ウィンドウでリセットされるシート単位の使用量上限です。この上限はClaude chatおよびCoworkと共有され、シートのティア(StandardまたはPremium)に応じて決まります。現在の使用量ベースのEnterpriseプランは仕組みが異なります。使い切る前提の含有上限はなく、API料金で使用量が課金されます。上限は、組織レベルおよび個々のユーザーに対して管理者が設定した支出上限によって決まります。営業経由のプランでは、支出上限によって停止した使用は、所有者が先に上限を引き上げない限り、次の請求期間の開始時に再開します。セルフサービスプランでは、前払いクレジット残高がなくなった場合も使用が停止し、所有者が追加購入するまで再開しません。ProおよびMaxでは、メッセージに表示されるリセット時刻と、実際の/usageバーが信頼できる数値です。ブログ記事から転記した数値を基準にしないでください。まだティアを選んでいる場合は、必要なClaudeプランで各プランの制限対象を比較できます。
/model でモデルを切り替えてもセッション上限や週間上限が回復しない理由
これは最もよくある誤った操作です。ドキュメントにも明記されているとおり、セッション上限と週間上限はすべてのモデルで共有されるため、モデルを切り替えてもアクセスは回復しません。セッションの利用可能時間を使い切った後で小さいモデルを選ぶと、応答に使用されるモデルが変わるだけです。セッションおよび週間の利用枠はモデルごとに保持されていないため、残りの利用枠は変わりません。したがって、切り替えによって解放されるものもありません。
例外は、モデルファミリーごとの上限です。メッセージに You've hit your Opus limit または You've hit your Sonnet limit と表示される場合は、/model が正しい対処です。そのファミリー以外のモデルに切り替えて作業を続けてください。ブロックされているのは、そのファミリーへのリクエストだけだからです。Max および Premium のシートにおける Fable の上限も同じです。別のモデルに切り替えてプラン内で作業を続けるか、利用クレジットで Fable を使い続けてください。ただし、Fable は他のモデルより共有の週間プールを速く消費します。そのため、Fable の上限に達した後で切り替えても、全体の週間上限を超えて利用できるわけではありません。
上限をバグだと考えるのは、2つ目によくある誤った操作です。再インストールや再認証を行っても何も変わりません。利用枠は、ウィンドウがリセットされたとき、無料の上限リセットを使用したとき、または利用クレジットを購入したときに回復します。
サブスクリプションの上限に達した場合の対処
- リセット時刻を確認します。セッションのウィンドウは短時間です。週次のウィンドウは、席で待ち続けるようなものではありません。Claude Code v2.1.234 以降では、
/rate-limit-optionsにリセットまで待機させ、中断したタスクを自動的に続行できます。 - Opus、Sonnet、または Fable の上限に達した場合は、
/modelを実行し、そのファミリー以外のモデルを選択します。 /usageを実行すると、プランの上限、使用量バー、リセット時刻を確認できます。/costは同じ画面を表示するエイリアスです。- claude.ai の Settings > Usage、または Claude Desktop で Resets セクションを確認します。対象となるプランでは、無料の上限リセットが提供されることがあります。「Reset for free」をクリックすると、対象となるオファーに応じて、5 時間のセッション上限または週次上限がすぐに満杯まで戻ります。このボタンは、ターミナルまたは IDE の Claude Code、あるいは Claude Mobile では利用できません。また、各オファーには期限があります。
- 上限を超えて作業を続けるには、
/usage-creditsを実行します。Pro と Max では、請求設定が開きます。Team と Enterprise では、組織の使用量設定が開くか、請求情報へのアクセス権がない場合は管理者へのリクエストが送信されます。 - 毎週同じ上限に達する場合は、作業量に対してプランのサイズが合っていません。使用量上限を超える方法を、リセットのたびに検討するのではなく、一度まとめて検討する価値があります。
/usage-credits には、/login を通じてサインインした claude.ai のサブスクリプションが必要です。API key 認証では利用できません。API key には拡張可能なプランの利用枠がないためです。
Usage credits には、先に知っておくべき副作用が 1 つあります。デフォルトでは、サブスクリプションに含まれる使用量の範囲内で、Claude Code はメインの会話に 1 時間の prompt cache を設定します。credits を使い始めると、これが 5 分に短縮されるため、多くのターンがキャッシュなしで開始され、同じ作業でも Claude Code の token 使用量が増加します。Subagents はこのメイン会話用の枠の外部で動作するため、プランの使用量の範囲内でも 5 分になります。promptCacheTtl 設定、または Claude Code v2.1.242 以降の CLAUDE_CODE_PROMPT_CACHE_TTL を使用して TTL を自分で選択すると、credits の使用中も 1 時間の有効期間を維持できます。
使用量制限に見えるが、使用量制限ではないメッセージ
Claude Code では、使用量制限として報告されるものの、実際には使用量制限ではないエラーが4つあります。
- コンテキストまたは自動コンパクションの警告は、使用量制限ではありません。
/contextは、会話がモデルのコンテキストウィンドウを超えると、Context exceeds the 200k-token limit by 94k tokensのような行と、空きを確保するコマンドを表示します。コンパクションは古い履歴を要約して空きを確保しますが、無料ではありません。/compactは要約対象の会話を読み取るため、大きなコンテキストのコンパクション自体が、プランに対する大きなリクエストになります。継続性よりも新しい開始を優先する場合、/clearなら費用はかかりません。 Prompt is too long · automatic compaction failed: <the underlying error>は、自動コンパクション自体が、表示されたエラーによって失敗したことを示します。/compactは、そのエラーを解決するまで同じエラーで失敗し続けます。Credit balance is too lowは、Console 組織の前払いクレジットを使い切ったか、Claude Code がサブスクライバーのリクエストを Console API key 経由で送信していることを示します。/statusで、現在有効な認証情報を確認できます。platform.claude.com/settings/billing でクレジットを追加できます。ここでは自動補充も設定できます。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は、クォータの枯渇ではなく、権限の確認です。Opus 4.6 または Sonnet 4.6 の[1m]バリアントを選択している場合は、[1m]サフィックスのないバリアントを選ぶか、CLAUDE_CODE_DISABLE_1M_CONTEXT=1を設定します。コンテキストが 200K tokens を超えたために会話の途中で表示された場合、Claude Code が自動的に標準制限未満までコンパクションします。Sonnet 5 以降、Opus 4.7 以降、Haiku 5.5、および Fable models はネイティブの 1M ウィンドウで動作するため、削除すべきサフィックスはありません。この変数によって 200K に制限されています。
API に起因するものも1つあります。413 request_too_large は、単一のリクエストに対するサイズ制限であり、レート制限ではありません。
API レート制限: 429 が実際にカウントしているもの
Messages API は、モデルクラスごとに次の 3 つを個別に測定します。
- 1 分あたりのリクエスト数 (RPM)
- 1 分あたりの入力トークン数 (ITPM)
- 1 分あたりの出力トークン数 (OTPM)
組織には支出上限もあります。これは別の仕組みで、API 利用に対する月間の最大費用です。ティアの支出上限に達すると、より高い上限を申請しない限り、翌月まで API の利用が一時停止します。これも 429 rate_limit_error として返されますが、retry-after ヘッダーはなく、error.details.error_code に enforced_spend_limit_reached が含まれます。リトライループでは解決できません。Console で自分で設定した、より低い支出上限はさらに異なる形で現れます。リクエストは、You have reached your specified API usage limits で始まるメッセージとともに HTTP 400 invalid_request_error を返します。上限を引き上げるか削除すると、アクセスが復旧します。
429 が返されるタイミングは、次の 4 つの仕組みで決まります。
- 制限はモデルクラスごとに適用されます。 モデルごとに個別に適用されるため、それぞれの上限まで異なるモデルを同時に使用できます。一部のファミリーは同じバケットを共有します。Opus のレート制限は Claude Opus 4.8、Opus 4.7、Opus 4.6、Opus 4.5 の合計に適用されます。一方、Claude Sonnet 5 には独自の制限があります。
- 容量は継続的に補充されます。 API はトークンバケットアルゴリズムを使用するため、固定時刻にリセットされるのではなく、容量が継続的に補充されます。1 分あたり 60 リクエストの制限が 1 秒あたり 1 リクエストとして適用される場合、60 リクエストを一度に送信すると失敗します。
- ほとんどのモデルでは、キャッシュされていない入力だけが ITPM に加算されます。
input_tokensとcache_creation_input_tokensは加算されます。ほとんどの Claude モデルではcache_read_input_tokensは加算されません。ただし、Claude Haiku 3.5 は仕様上の例外です。したがって、キャッシュは割引だけでなく、レート制限の余裕も生みます。出力側では、高いmax_tokensは OTPM に加算されません。OTPM は実際に生成されたトークンだけをカウントするためです。 - 制限は組織レベルで適用されます。 ワークスペースにはより低い制限を設定できます。ただし、組織全体の制限は常に適用され、ワークスペースの制限を合計した値がそれを上回っていても変わりません。ワークスペースで上書きしていない制限は無制限になるのではなく、組織から継承されます。
Start、Build、Scale、Custom の各ティアによって実際の数値が決まります。ティアは利用履歴とアカウントの状態に基づいて自動的に割り当てられます。新しい組織や利用履歴が少ない組織は、標準公開の制限より低い Evaluation ティアから開始する場合があります。そのため、表から予測されるより早く最初の 429 が返ることがあります。利用量が急増すると加速制限が発動します。ティアの範囲内であっても 429 が返るため、トラフィックは段階的に増やしてください。公開されている数値はすべて上限です。文書化された制限は、許可される最大利用量であり、最低利用量を保証するものではありません。上限の引き上げを申請するには、Claude Console の Rate limits ページで "Request tier increase" を使用します。
429 の読み方: retry-after、ヘッダー、SDK のリトライ
すべての API エラーは同じエンベロープを返します。ネストされた error オブジェクトにタイプとメッセージが含まれ、最上位には request_id も含まれます。
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "<names the rate limit you exceeded>"
},
"request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}残りの情報はヘッダーに含まれます。
retry-afterは、リクエストを再試行できるまで待つ秒数です。これより早く再試行すると失敗します。すべての 429 に含まれるわけではなく、支出上限による 429 には含まれません。anthropic-ratelimit-requests-limit、anthropic-ratelimit-requests-remaining、anthropic-ratelimit-requests-resetは、リクエストの利用枠を示します。anthropic-ratelimit-input-tokens-*とanthropic-ratelimit-output-tokens-*は ITPM と OTPM について同じ情報を示します。末尾の limit、remaining、reset がそれぞれ上限、残量、リセット時刻を表します。anthropic-ratelimit-tokens-*には、現在適用されている上限のうち最も厳しいものの値が表示されます。
リセット用ヘッダーは RFC 3339 形式のタイムスタンプです。残りトークン数を示すヘッダーは最も近い 1000 単位に丸められるため、目安として使用してください。Fast mode には独自の利用枠と anthropic-fast-* ヘッダーがあります。成功した任意の呼び出しで、これらをすべて読み取ってください。
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'すべてのレスポンスには、req_018EeWyXxfu5pfWkrYcMdjWG のような一意の request-id ヘッダーも含まれます。エラーボディーでは request_id として、Python および TypeScript SDK のレスポンスでは _request_id として表示されます。サポートに連絡するときは、この値を伝えてください。
バックオフループを実装する前に、本当に必要か確認してください。公式 SDK は、接続エラー、レート制限、5xx サーバーエラーなどの一時的な障害を、指数バックオフで自動的に再試行します。デフォルトでは 2 回再試行し、retry-after ヘッダーが存在する場合はその値に従います。各クライアントには最大リトライ回数のオプションがあり、この動作の変更や無効化が可能です。
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 は利用者の問題ではありません
429 はリクエストが速すぎたことを示します。529 overloaded_error は API が一時的に過負荷状態であることを示し、全ユーザーからのネットワークトラフィックが増えた場合に発生することがあります。原因は key やコードではありません。指数バックオフを使って再試行してください。SDK は 5xx レスポンスに対してすでに指数バックオフを実行します。解消しない場合は status.claude.com を確認してください。500 api_error は内部エラーです。同じ方法で再試行してください。どちらも rate limit ではありません。
自分の制限を表ではなく確認する
サブスクリプションでは、/usage が確認すべき画面です。プランの使用量バーと、その使用量の内訳が表示されます。d または w で、過去 24 時間と過去 7 日間を切り替えます。注意点が 2 つあります。Session ブロックには API トークンの使用量が表示されます。これは API ユーザー向けなので、サブスクライバーはドル表示を無視できます。数値はそのマシン上のローカルなセッション履歴に基づきます。そのため、別のデバイスや claude.ai での使用量は含まれません。
API 側では、Claude Console の Usage ページに「Rate Limit - Input Tokens」と「Rate Limit - Output Tokens」という 2 つのグラフが表示されます。入力トークンのグラフでは、キャッシュされていない入力トークンの 1 分あたりの時間単位の最大値を、現在の ITPM 制限と比較して表示します。横にはキャッシュ率も表示されます。これにより、本番環境で制限に達してから確認するのではなく、制限への接近を監視できます。
設定済みの制限をプログラムから確認するには、次のコマンドを実行します。
curl -s https://api.anthropic.com/v1/organizations/rate_limits \
-H "x-api-key: $ANTHROPIC_ADMIN_KEY" \
-H "anthropic-version: 2023-06-01"この操作には Admin API の認証情報が必要です。使用できるのは、Admin API key、org:admin スコープを持つ OAuth token、または workspace にスコープが限定されていない個人用 key か service account key です。Workspace API keys は使用できません。GET /v1/organizations/workspaces/{workspace_id}/rate_limits を使うと、workspace ごとに同じ操作を実行できます。どちらも読み取り専用です。制限を変更するには、Console の Rate limits ページを使用します。
使用量を減らし、制限にかかりにくくする
どちらのシステムも内部では同じ使用量を計測しているため、以下の対策はどちらにも有効です。
- 1 ターンあたりのトークン使用量を減らす。 連続して作業するとキャッシュが維持され、無関係なタスク間で
/clearしてもコストはかかりません。Claude Code のトークン使用量で、これらの対策を詳しく説明しています。 - effort を下げる。 レベルは
low、medium、high、xhigh、maxです。/effortメニューにはultracodeもありますが、これは使用量を下げるのではなく増やします。機械的な名前変更に深い推論を使っても効果はありません。 - 429 の後は並列実行数を減らす。
CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCYを下げ、多数のサブエージェントを並列実行しないでください。/statusも実行します。残ったANTHROPIC_API_KEYにより、サブスクリプションではなく低いティアのキー経由でリクエストが送信されることがあります。 - 対話を必要としない処理を Message Batches API に移す。 この API は大量の処理を非同期で実行し、入力トークンと出力トークンが 50% 割引になります。専用のレート制限も適用されるため、夜間ジョブがセッションと競合しなくなります。
コンテキストに大量のデータを投入する処理では、この問題が特に顕著です。ライブの市場データを使って株式やオプションを分析する場合、相場表やチェーン全体を貼り付けるより、各質問に必要な範囲だけを取得するほうがコストを大幅に抑えられます。人間ではなくプログラムが実行する断続的な処理は、最初から API key で実行するのが適しています。移行すると、計測方法だけでなく料金体系も変わります。Claude API には無料ティアがありません。Max プランと Team プランには、Console organization をリンクすると、自分のアプリやエージェントを実行するための月間 API credits が含まれます。これらのクレジットは Claude Code には適用されず、プランの使用量上限も変わりません。VPS で最初の Claude API アプリを作成するでは、キーの管理とリトライを説明しています。また、VPS 上の tmux 内で Claude Code を実行し続けると、接続が切れても長時間のエージェント実行を継続できます。
FAQ
モデルを切り替えても Claude の使用上限が解消されないのはなぜですか?
セッション上限と週間上限は、すべてのモデルで共有されているためです。この使用枠はモデルではなくプランに属します。そのため、/model を変更すると回答に使用するモデルは変わりますが、残りの使用枠は変わりません。例外はモデルファミリーごとの上限です。You've hit your Opus limit と You've hit your Sonnet limit はそのファミリーにだけ適用されます。また、Max と Premium のシートでは Fable の上限が Fable の使用だけを制限します。この場合は、モデルの切り替えが公式に案内されている対処方法です。
429 rate_limit_error は何を意味しますか?どのくらい待つべきですか?
そのモデルクラスでレート制限に達したことを意味します。対象は、1 分あたりのリクエスト数、1 分あたりの入力トークン数、または 1 分あたりの出力トークン数です。通常、レスポンスには待機秒数を示す retry-after ヘッダーが含まれます。早すぎる再試行は失敗します。公式 SDK は、レート制限エラーと 5xx エラーを指数バックオフで自動的に再試行します。デフォルトでは 2 回再試行し、ヘッダーがある場合はその値に従います。契約ティアの上限内で 429 が発生する場合は、急激な利用増加による加速制限が原因と考えられます。error.details.error_code に enforced_spend_limit_reached が含まれる 429 には retry-after ヘッダーが付かず、月間支出上限を示します。この場合、数分待っても解除されません。
Claude の使用上限とリセット時刻を確認するにはどうすればよいですか?
Claude Code で /usage を実行すると、プランの使用量バー、リセット時刻、使用量の内訳を確認できます。/cost は別名です。d または w を使うと、直近 24 時間と直近 7 日間を切り替えられます。これらの数値はローカルのセッション履歴に基づくため、他のデバイスや claude.ai での使用量は反映されません。API では、Console でレート制限をグラフ表示できます。また、Admin API key などの Admin API 認証情報を使用して GET /v1/organizations/rate_limits を実行すると、設定済みの上限を取得できます。
Claude のプラン上限に達した後も作業を続けられますか?
場合によっては可能です。Pro と Max では /usage-credits を実行すると上限を超える使用量を購入できます。Team と Enterprise では、管理者に使用をリクエストできます。この機能には /login を通じた claude.ai のログインが必要で、API key 認証では利用できません。それ以外の場合は、リセット時刻まで待ちます。claude.ai または Claude Desktop の Settings > Usage に無料の上限リセットが表示されていれば、それを使用できます。Opus、Sonnet、または Fable の上限に達した場合はモデルを切り替えます。または、API key に作業を移します。API key ではウィンドウ単位ではなく、1 分単位で使用量が計測されます。