Claude APIの月間支出上限はティアで決まる — 到達時の429と引き上げ
Claude APIにはStart 500ドル・Build 1,000ドル・Scale 20万ドルの月間支出上限があります。到達時の429の見分け方、自分で設定した上限との違い、引き上げ手順を解説します。
Claude APIには、レート制限とは別に、組織が1か月に使える金額の上限があります。上限の大きさは利用ティア(usage tier)で決まり、Startは500ドル、Buildは1,000ドル、Scaleは20万ドルです。到達すると、翌月1日の00:00 UTCまでAPIが止まります。
月途中で突然429が返り、リトライしても直らないとき、原因はこの月間支出上限かもしれません。ティアの上がり方と申請の書き方はClaude APIのレート制限を引き上げる方法にあります。ここでは、支出上限に当たったときの見分け方と、止まっている間の扱いを中心に見ます。
月間支出上限(spend cap)とは何か
Claude APIの制限は2種類あります。1つは支出上限(spend limit)で、組織がAPI利用で負担する月額の最大値を決めます。もう1つはレート制限で、一定時間に送れるリクエスト数やトークン数を決めます。月間支出上限は前者の一部で、Start・Build・Scaleの各ティアに最初から付いている上限を指します。
ティアは使い始めた時点の履歴と利用実績に応じて自動で割り当てられ、使い続けると上のティアへ移ります。新しい組織や利用履歴の少ない組織は、標準より低い制限のEvaluationティアから始まることがあります。現在のティアと制限は、Claude ConsoleのRate limitsページで確認できます。
| ティア | 月間支出上限 | 補足 |
|---|---|---|
| Start | 月間支出上限500ドル | 補足 |
| Build | 月間支出上限1,000ドル | 補足 |
| Scale | 月間支出上限20万ドル | 補足 |
| Custom | 月間支出上限上限なし | 補足制限はアカウント担当チームと取り決める |
Customティアには月間の上限がありません。Evaluationティアの上限額は、レート制限ページに載っていません。自組織に適用されている制限は、ConsoleのRate limitsページで確認できます。
組織の月間上限は、ConsoleのBillingページで確認できます。自分で設定する上限も同じページで置きます。AWS経由で使っている組織にも同じ月間上限が適用され、上限に達すれば同じように止まります。
上限は暦月で数えるため、月の途中に使い切ると、その月の残りの日数が止まります。たとえばStartの500ドルを使い切ったのが月の半ばなら、次の月初まで約2週間、本番のAPIが応答しない計算です。
上限に達すると何が起こるか
ティアの上限に達すると、組織のAPI利用は翌月1日00:00 UTC(日本時間では同日の9:00)まで止まります。止まっている間のリクエストには、HTTP 429が返ります。再開が早まるのは、より高い上限を申請して認められた場合だけです。
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "You have reached your API usage limits: your organization has crossed its monthly API usage threshold, set based on your organization's API tier. You will regain access on 2026-09-01 at 00:00 UTC.",
"details": { "error_code": "enforced_spend_limit_reached" }
},
"request_id": "req_018EeWyXxfu5pfWkrYcMdjWG"
}これはレート制限と同じ rate_limit_error ですが、扱いはまったく違います。押さえておく点は3つです。
retry-afterヘッダーが付かない- 再試行は、SDKの自動リトライも含めて、アクセスが戻るまで失敗し続ける
- Messages APIでは
error.details.error_codeがenforced_spend_limit_reachedになり、レート制限の429と区別できる
メッセージには復旧する日時が入ります。ログに本文を残しておけば、いつ止まっていつ戻るかを後から追えます。
3種類の上限は、ステータスとtypeで分かれる
支出に関わる停止は、ティアの上限だけではありません。自分で設定した上限や、Claude Codeワークスペースの上限でも止まります。ステータスコードが違うので、まずそこを見ます。
| 止まった理由 | ステータス | type | retry-after |
|---|---|---|---|
| ティアの月間支出上限 | ステータス429 | typerate_limit_error | retry-afterなし |
| 自分で設定した組織またはWorkspaceの上限 | ステータス400 | typeinvalid_request_error | retry-after— |
| Claude Codeワークスペースの上限 | ステータス429 | typerate_limit_error | retry-afterあり |
| 通常のレート制限 | ステータス429 | typerate_limit_error | retry-afterあり |
自分で設定した上限に達したときだけ400になります。メッセージは You have reached your specified API usage limits で始まり、Workspaceの上限なら You have reached your specified workspace API usage limits で始まります。復旧の日時も本文に入ります。ただしClaude Codeワークスペースに設定した上限は、400の代わりに、retry-after 付きの429を受けることがあります。
ここで注意したいのは、400は「リクエストの形式が悪い」ときのステータスでもある点です。400を受けたとき、クライアント側のバグと決めつけて入力を直そうとすると原因を見失います。メッセージの先頭が上の文言かどうかで、支出上限と形式不良を分けられます。
ヘッダーを軸にした429の読み分けはClaude APIレート制限ヘッダー13種の読み方と分岐ロジックで、エラー全般のリトライ設計はClaude APIのエラーハンドリング設計で扱っています。
分岐コードの例
HTTPのレスポンスを自前で処理する場合の判定例です。ステータスと本文だけで、4つを分けます。
def classify_limit(status: int, headers: dict, body: dict) -> str:
err = body.get("error", {})
code = (err.get("details") or {}).get("error_code")
msg = err.get("message", "")
if status == 429 and code == "enforced_spend_limit_reached":
return "tier_spend_cap" # 待っても復旧しない
if status == 400 and msg.startswith("You have reached your specified"):
return "own_spend_limit" # 上限の引き上げか解除で復旧
if status == 429 and "retry-after" in headers:
return "rate_limit_or_cc_ws" # retry-after の秒数だけ待つ
return "other"tier_spend_cap と own_spend_limit は、待つだけでは復旧しないので、リトライせずに通知へ回します。rate_limit_or_cc_ws だけが、retry-after に従って待つ対象です。
自分で設定する上限は、ティアの上限より下にだけ置ける
ティアの上限とは別に、組織として低めの上限を自分で置けます。誤って大量に呼んだときの被害を抑える目的です。そもそも制限値は上限として示されたもので、その量までの利用が保証されているわけではありません。意図しない超過を減らし、利用者間で資源を公平に分けるための仕組みだと説明されています。
Consoleで自分用の支出上限を設定する
- 1
Billingページを開く
Claude ConsoleのSettings > Billingに移動します。
- 2
エディタを開く
Spend limitsセクションでAdjust limitをクリックします。上限を一度も設定していなければSet limitと表示されます。
- 3
金額を入力する
新しい値を入れます。入れられるのは、現在のティアの上限以下の金額です。
自分の上限に達した場合は、先に述べたとおり400が返ります。復旧は、上限を引き上げるか外せば即座に済みます。ティアの上限と違って、自分で戻せるのが利点です。
Workspace単位の上限は、Settings > Workspacesで対象のWorkspaceを選び、開いたパネルのSpend limitsから設定します。月間の支出を抑えられ、支出が一定の水準に達したときのアラートも設定できます。Workspaceごとにレート制限を分ける手順はClaude APIでWorkspace単位のレート制限を設定する手順にあります。
Claude Codeワークスペースは、組織の中でユーザーごとの月間支出上限を設けられる唯一のWorkspaceです。Console課金でClaude Codeを使わせている組織では、個人別の上限をここで管理します。
上限を引き上げるには
ティアの上限を上げる手段は、ティアを上げることです。申請の手順と書き方は姉妹記事に任せ、ここでは止まっている間に押さえる点だけ挙げます。
- ティアが上がれば、月初まで待たずに利用が戻る
- 自分で設定した上限なら、金額を上げるか解除するだけで戻る
- AWS経由(Claude Platform on AWS)では、同じ月間上限が適用されるものの、ConsoleのRequest tier increaseは使えない。引き上げはAnthropicのアカウント担当者かサポートに連絡する
止まる前に備えておくこと
月間上限は、設計の段階で織り込んでおくものです。運用でできることを挙げます。
- 利用額の推移をConsoleのUsageページで見て、月の前半に使い過ぎていないか確かめる
- 自分の上限をティアの上限より低く置き、アラートを併用する。先に400で止まるので、ティアの429に当たる前に気づける
- 月末に大きなバッチ処理を予定しているなら、その分の見込み額を月初から差し引いて考える
- 429を受けたら、まず
error_codeを見る。enforced_spend_limit_reachedならリトライを止めてアラートを出し、キューの再投入は復旧後にまとめて行う
Claude Codeからの利用に限って、1回のセッションの費用を抑えたいなら、Claude Codeの--max-budget-usdでAPI課金額に上限を置けます。ただしこれはセッション単位の制御で、組織の月間上限とは別の仕組みです。
サブスクリプション側の使用量上限や、ティア名とプラン料金の関係はClaude APIとサブスクの料金比較で触れています。Enterprise組織のメンバー別の支出上限と増額申請はClaude Spend Limits APIの領分で、本記事の月間キャップとは対象が違います。
まとめ
月間支出上限は、ティアで決まる組織単位の天井です。到達時は retry-after なしの429(enforced_spend_limit_reached)が返り、翌月1日の00:00 UTCまで続きます。自分で設定した上限は、同じ止まり方でも400で返ってくる別物です。
運用では、429を受けたときに error_code を最初に見る分岐と、自分の上限をティアの手前に置く二重の備えが効きます。復旧を急ぐなら、ティアの引き上げ申請が手段になります。