トラブルシュート · 月次spend capの429

HTTP 429なのに retry-after がない
error_code は enforced_spend_limit_reached

2026-08-30 に確認した Anthropic ドキュメントでは、Start / Build / Scale の月次spend capはそれぞれ $500 / $1,000 / $200,000。上限に当たると HTTP 429・type は rate_limit_error のままだが retry-after は付かない。翌月1日 00:00 UTC までリトライは失敗し続ける。

#enforced_spend_limit_reached#rate_limit_error#retry-after なし#月次spend cap

引用しやすい4つの事実

429

見た目は普通のレート制限

ステータスは 429、error.type は rate_limit_error のままなので、多くの SDK が分単位のスロットルとしてリトライする。

retry-after なし

本当のレート制限429との分岐点

ティアの月次capによる429には retry-after が付かない。SDKの自動リトライは、翌月1日 00:00 UTC か上位ティアへ上がるまで失敗する。

$500 / $1,000 / $200,000

Start / Build / Scale の月次上限

ドキュメントに明記された月次ドル上限。Custom ティアに公開上限はなく、アカウントチームとの取り決めになる。

enforced_spend_limit_reached

Messages API の error_code

error.details.error_code を見る。この文字列ならリトライを止める。自分で下げた spend limit に当たった場合は HTTP 400 invalid_request_error。

この429は「送りすぎ」ではない

Anthropic の制限は spend limits(暦月で組織が使えるドル上限)と rate limits(RPM / ITPM / OTPM)に分かれる。どちらも HTTP 429、error.type は rate_limit_error になり得る。見分けは details 側:ティアの月次capに当たると Messages API は error.details.error_code を enforced_spend_limit_reached にし、retry-after を付けない。公式サンプル文面は “You have reached your API usage limits: your organization has crossed its monthly API usage threshold… You will regain access on 2026-09-01 at 00:00 UTC.” 回復は翌月1日 00:00 UTC。Billing で自分より低く設定した spend limit は別経路で、HTTP 400・invalid_request_error、文面は “You have reached your specified API usage limits” で始まる。Claude Code workspace の上限は別チェックで、retry-after 付き429になり得る。

weekly limit やレート制限429と混同しやすい理由

2026-06-26、Anthropic の公式 changelog は利用ティアを Start / Build / Scale に整理し、$500 / $1,000 / $200,000 の月次capを公開した。エージェント負荷は分あたりトークンよりドルを先に食うので、Start/Build 組織は RPM/ITPM に余裕があるのに月次capへ先に当たる。線路上は429のままなので “You've hit your weekly limit” や retry-after 付きレート制限と重なる。既存の 529 vs 429 vs weekly のページは429を主にバックオフ可能なスロットルとして扱っている。本ページは第三の429、つまりバックオフが効かない月次ドル上限を扱う。

タイムライン

2026-06-26

Anthropic 公式 changelog:利用ティアを Start / Build / Scale の3つに統合。各ティアで Sonnet と Haiku のレート上限が Opus と揃い、ほとんどの組織は上位へ、下限に下げられた組織はない。月次spend capはティア単位。

現行ドキュメント(2026-08-30 取得)

platform.claude.com/docs/en/api/rate-limits は、ティアcap到達後は翌月1日 00:00 UTC まで停止、429 に retry-after なし、error_code は enforced_spend_limit_reached と書く。

翌月1日 00:00 UTC

上位ティアに上がらなければ、この瞬間に復旧する。サンプルJSONの 2026-09-01 00:00 UTC は例示日付。自分のエラー文面を正とする。

確認済み vs よくある混同

確認済み

2026-08-30 取得の公式ドキュメント:ティア月次capの429は type が rate_limit_error のまま、retry-after なし、Messages API では error.details.error_code = enforced_spend_limit_reached。上限は $500 / $1,000 / $200,000。自分で設定した spend limit は HTTP 400。

よくある混同

「429は数十秒待てば直る」は retry-after 付きレート制限には正しく、enforced_spend_limit_reached には当てはまらない。もう一つは Claude Code の weekly limit と同一視すること。weekly はサブスク期間のクォータ、spend cap は Console 組織の月次ドル上限で、リセット時計が違う。

対処:クライアント側で済むか、課金側か

レート制限429:retry-after を守る

rate_limit_error に retry-after または anthropic-ratelimit-* が付くなら RPM / ITPM / OTPM か加速制限。並列を下げ、ヘッダを守り、プロンプトキャッシュを使う。分単位で戻ることが多い。月次capの429をこう扱ってはいけない。

enforced_spend_limit_reached:バックオフは無効

Rate limits ページで上位ティアを申請するか、翌月1日 00:00 UTC まで待つ。自分で下げた400の spend limit は Billing で上げるか解除すれば即座に戻る。今月分を使い切り、待てない仕事なら、この Console 組織以外の課金経路が必要になる。

3ステップ(ベンダーを変えなくても使える)

1) HTTP が 429 か 400 か。2) error.details.error_code が enforced_spend_limit_reached か、retry-after が無いか。3) 文面が翌月1日 00:00 UTC を指しているか。それがティアcap。400で “You have reached your specified API usage limits” から始まるなら自分で置いた上限。Claude Code の週次クォータは普通 “You've hit your weekly limit” のような製品メッセージで、この API error_code ではない。先に同じ組織でティアか Billing 上限を上げる。Anthropic の認証やspend制御を回避する手順は書かない。

このエラーは QCode の残高ではない

enforced_spend_limit_reached は Anthropic Console 組織の月次ティアに結び付いており、リセラー残高ではない。QCode は公式価格×サービス倍率で前払い残高から引く別経路。QCode がスロットルしないとは言わない。自分の Anthropic 組織が1日まで凍っていて待てないなら、既に発行済みの別APIキーへ逃がすのはエンジニアリング上の回避であり、Anthropic ルールの迂回ではない。

よくある質問

enforced_spend_limit_reached と普通の429をどう見分ける?

retry-after が無いこと、error.details.error_code が enforced_spend_limit_reached であること。両方満たせば分単位スロットルではなく月次capとして扱う。

Start / Build / Scale の月次capは?

2026-08-30 取得のドキュメントは Start $500、Build $1,000、Scale $200,000(暦月・USD)。Custom に公開値はない。Console の Billing / Rate limits の数字を正とする。

自分で設定した spend limit もこの error_code か?

違う。組織または workspace で自分より低くした上限は HTTP 400、invalid_request_error、“You have reached your specified API usage limits” で始まる。Claude Code workspace 超過は retry-after 付き429になり得る。3種類を同じリトライ方針で扱わない。

Claude のモデルを変えれば月次capを避けられる?

避けられない。cap はモデル単位ではなく、組織の暦月ドル。別の Claude SKU も同じ組織の請求。続けるならティアを上げるか、1日まで待つか、この Console 組織の外へ出す。

SDK の自動リトライはどうなる?

公式SDKは retry-after 付きレート制限をリトライする。月次capの429にはヘッダが無いので、再開時刻まで失敗する。enforced_spend_limit_reached を見たらリトライを止め、Billing / Rate limits を開く。

Claude Code の weekly limit と同じ?

違う。weekly limit はサブスク期間のクォータ。enforced_spend_limit_reached は API 組織の月次ドル上限。出る場所もリセット時計も違う。

情報源

月次cap金額、retry-after なし、error_code enforced_spend_limit_reached、自分で設定した spend limit の HTTP 400 は、Anthropic 公式 platform.claude.com/docs/en/api/rate-limits(2026-08-30 取得)。“You have reached your API usage limits: your organization has crossed its monthly API usage threshold” は同ページのサンプルJSON。Start / Build / Scale への統合日は platform.claude.com/docs/en/release-notes/overview の 2026-06-26 項(2026-08-30 取得)。非公開の内部設定は引用していない。

Console 組織が月次capでも、1日まで仕事を止めなくていい

Anthropic 組織の課金ルールであり、キーが壊れたわけではない。別の課金経路が必要なら、公式価格×サービス倍率の前払い残高という選択肢がある。

関連ページ

Anthropic 公開ドキュメントの技術的整理であり、Anthropic の公式見解ではない。ティア・上限・再開時刻は Claude Console とエラー本文が正。QCode は Anthropic の認証・不正対策・spend cap を迂回しない。