Claude Code のレート制限:サブスクリプション上限と API 429 の見分け方
認証方式、応答コード、利用状況、request ID を使い、サブスク上限、API 429、プロバイダーエラーを区別します。
Claude Code が rate limit を表示すると、待機や再起動を試したくなります。しかし対処は、制限している層が Claude.ai のサブスクリプション(Pro、Max、Team)、Anthropic API、第三者の Endpoint のどれかで変わります。症状は似ていますが、解決策は同じではありません。
Claude Code における rate limit の意味
Claude Code には基本的に異なる二つの認証方式があります。
- サブスクリプション(Pro、Max、Team、Enterprise):Claude.ai OAuth でサインインします。Claude Code と他の Claude サーフェスはプランの共有枠を使用します。現在のウィンドウと追加の制約は
/usageとアカウント設定で確認します。 - API キー(環境変数の
ANTHROPIC_API_KEY):リクエストはapi.anthropic.comに直接送られます。制限は Anthropic Console にあるワークスペース tier ごとの RPM、ITPM、OTPM です。
ANTHROPIC_API_KEY が設定されている場合、サブスクリプションより優先されます。サブスクでログイン済みでも Claude Code は API キーに切り替わるため、混乱の原因になります。
リクエストが第三者 Endpoint に届いたか確認したい場合、BetterToken では Dashboard が追加の診断層になります。リクエストの状態、モデル、input/output/cache Token、対応する請求を確認でき、プロバイダーの制限と Anthropic API エラーを分けられます。Base URL と API キーの設定は BetterToken ドキュメント を参照し、現在の workflow と照合してください。
サブスク、Anthropic API、別の Endpoint の制限を特定する
まず Claude Code で /status を実行します。現在の認証がサブスクアカウントか API キーかを表示し、次に調べる場所が決まります。
- Pro/Max/Team サブスク:
/statusが subscription を示し、メッセージに session または weekly limit とリセット時刻があるなら、プラン利用量が尽きています。リセットを待ち、/usageと利用可能なら/usage-creditsを確認します。 - Anthropic API 429:
/statusが API キーを示し、ANTHROPIC_API_KEYが存在して、応答に HTTP 429 またはrate_limit_errorがある場合です。選択 tier の RPM、ITPM、OTPM が制約されています。最初にretry-afterを確認し、並行実行を減らします。 - 第三者 Endpoint: カスタム Base URL とプロバイダーキーを使っており、コードや応答形式が Anthropic と異なることがあります。まず応答を読み、プロバイダーの status page とクォータ条件を確認します。
500 api_error、504 timeout_error、529 overloaded_error は別に扱います。これらはサーバー側または一時的なエラーであり、サブスク枠を使い切った証拠ではありません。上限付き exponential backoff を使ってください。Anthropic の応答にはヘッダーの request-id があり、エラー JSON には request_id も含まれます。サポート用に保存します。
API キーを漏らさない段階的な診断
手順 1:認証方式を確認する
Claude Code セッションで実行します。
「Login method」または「Auth token」を確認します。ANTHROPIC_API_KEY があるがサブスクを使いたい場合は、先に変数を消します。
Claude Code を再起動し、もう一度 /status を確認します。
手順 2:エラーメッセージ全文を読む
正確な文言が最重要の診断信号です。Resets at [時刻] はサブスク上限なのでリセットを待ちます。retry-after ヘッダー付きの rate_limit_error は API 429 なので Anthropic Console を確認します。api_error、timeout_error、overloaded_error は一時的な 5xx/529 エラーなので backoff で再試行します。独自形式のエラーと標準外 Base URL はプロバイダー側の問題を示します。
コードと併せ、時刻、error.type、request-id/request_id、Claude Code のバージョン、選択した Endpoint を安全な診断セットとして保存します。API キー、Authorization ヘッダー、.env の内容は含めません。
手順 3:現在の利用量を確認する
サブスクでは次を実行します。
Pro/Max の usage bar に、5 時間ウィンドウのリセットまでと週次上限までの残りが表示されます。/model によるモデル切替では、すでに消費した compute 時間は回復しません。枠はモデル間で共有されています。
API では Anthropic Console → Settings → Limits を開き、tier、現在の RPM/ITPM/OTPM 上限、利用量を確認します。BetterToken では Dashboard を開き、時刻でリクエストを探します。モデル、状態、input/output/cache Token、請求を確認できます。Dashboard は BetterToken に到達したかを示しますが、本文またはヘッダーの識別子は別途保存してください。
手順 4:公式ステータスを確認する
Claude Code または API に影響するインシデントは、あなたの制限とは別に問題を説明します。
手順 5:設定の競合を確認する
ANTHROPIC_API_KEY と ANTHROPIC_BASE_URL を同時に設定すると、予期しない挙動になることがあります。同じ環境に異なる認証方式用の二組の変数を置かないでください。サポートに相談する際も、ログやスクリーンショットに Authorization、x-api-key、.env の内容を含めません。エラー文、HTTP コード、claude --version、キー値を除いた /status で十分です。
原因判明後に行うこと
サブスク上限(Pro/Max/Team): /usage とエラーメッセージが示すリセットを待ちます。モデル固有の上限なら /model で利用可能なモデルを選べますが、プラン全体の利用量はリセットされません。利用可能なら /usage-credits を実行して設定を確認し、無関係なタスク間では /clear でコンテキストをリセットして後続リクエストの消費を抑えます。
Anthropic API 429(rate_limit_error): 応答の retry-after を読み、その時間待ちます。並行するエージェントタスクは RPM、ITPM、OTPM をより早く消費するため、並行性を下げます。古い固定値でなく Anthropic Console → Settings → Limits で現行 tier と上限を確認してください。継続的に増枠が必要なら Console 経由で Anthropic に依頼します。
第三者 Endpoint: プロバイダーの status page を開き、現在のクォータとエラー形式を確認し、必要なら直接 Anthropic API または別のプロバイダーへ切り替えます。
5xx / 529: 500、504、529 には上限付き exponential backoff を使います。公式 SDK は一部の一時的エラーをすでに再試行します。status.anthropic.com を確認し、続く場合は秘密情報を除き request-id、時刻、エラー種別をサポートへ渡します。
待機、負荷変更、サポート連絡の判断
- リセット時刻のあるサブスク上限: 待機、モデル切替、または
/clear。 retry-after付き API 429: 指定時間待機し、並行性を下げる。retry-afterのない頻繁な API 429: tier を確認し、必要なら増枠を依頼する。- 500 / 504 / 529: 上限付き exponential backoff、サービス状態の確認、
request-idの保存。 - 第三者 Endpoint のエラー: そのプロバイダーに連絡する。
- 有効なサブスクで不明な制限: Claude.ai サポートに連絡する。
- 有効な API キーで不明な制限: Anthropic Console サポートに連絡する。
サブスクリプションのサポートと API のサポートは別チームです。Anthropic API Console チームは Pro/Max のサブスク上限を解決できず、その逆も同様です。
FAQ
なぜセッション開始直後に「rate limit」と表示されますか?
考えられる原因は、(1) 低い tier の ANTHROPIC_API_KEY が環境にありサブスクより優先されている(/status で確認)、(2) 前のセッションがロールングウィンドウの大部分を消費しており、Claude Code の再起動でリセットされない、(3) 複数デバイスやエージェントタスクが同じアカウントを使い利用量が合算されている、の三つです。
/model でモデルを切り替えると役立ちますか?
サブスクでは一部役立ちます。You've hit your Opus limit は Opus の枠を使い切った意味で、Sonnet への切替で同じセッションを続けられる場合があります。ただし、共有の週次および 5 時間 compute budget はモデル切替で回復しません。
サポートへの相談に完全なログを添付すべきですか?
いいえ。完全なエラー文、HTTP コード、キー値を除いた /status、claude --version、発生時刻、その時点の status.anthropic.com の状態で足ります。
最も頻繁に変わる動的な上限は何ですか?
API tier の上限(RPM、ITPM、OTPM)とサブスクウィンドウのパラメーターは変わることがあります。現在値は公式ページだけで確認します。
- コストと利用量:code.claude.com/docs/en/costs
- API エラーとレート制限:platform.claude.com/docs/en/api/errors
- サービス状態:status.anthropic.com
チュートリアルやフォーラムの数値はすぐ古くなるため、信用しないでください。