◉CLAUDE LABEN
●2.1.309 — サンドボックスと権限チェックが厳しくなり、Windows の hooks と PowerShell の不具合も直りました(10/22)●2.1.307 — スリープやキーチェーンロックのあとに MCP が再接続されない問題を修正しました(10/21)。2.1.306 では claude -p の誤表示も解消●SONNET 4.5 — Claude API での提供終了は 11/30、残り37日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.309 — サンドボックスと権限チェックが厳しくなり、Windows の hooks と PowerShell の不具合も直りました(10/22)●2.1.307 — スリープやキーチェーンロックのあとに MCP が再接続されない問題を修正しました(10/21)。2.1.306 では claude -p の誤表示も解消●SONNET 4.5 — Claude API での提供終了は 11/30、残り37日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/API & SDK
⬡ API & SDK/2026-10-24初級

「Credit balance is too low」の前に見る3つの勘定 — 含まれるクレジットと購入分は別の財布です

Max や Team の API クレジットが残っているはずなのに「Credit balance is too low」と出る。原因は、含まれるクレジットの対象外の呼び出しと、購入分の残高、月間上限が別々に動いているためです。Console で見る順番と、夜間スクリプトに入れる検知コードをまとめました。

Claude API132Consoleクレジットオートリロードトラブルシューティング61troubleshooting62

朝、前の晩に走らせたはずの集計スクリプトの出力が、空っぽでした。ログを開くと、末尾に一行だけ、英語のエラーが残っています。

Your credit balance is too low to access the Anthropic API.

Max プランに入っていて、毎月 API クレジットも付いているはずです。残高が足りないとは、にわかには信じられませんでした。胃のあたりが少し冷えたのを覚えています。

最初にお伝えしたいのは、この文言は「お金が尽きた」とは限らず、「いま呼んだものを支払える財布が空だった」という意味のことが多いという点です。ここからは、私自身が切り分けに使っている3つの勘定と、無人で走らせるスクリプトに入れておく検知コードを書き残します。

財布は1つではなく、少なくとも3つあります

Anthropic の公式ドキュメントとヘルプセンターを読み直すと、API の支払いは次の三つの仕組みが重なって動いていると分かります。

勘定何が入っているか切れ方
含まれるクレジットMax 5x は 100 ドル、Max 20x は 200 ドル、Team は席数に応じて最大 500 ドルまで(プールされます)。Console の Billing ページの Promotional credits に出ます請求サイクルの終わりに期限切れ。翌月への繰り越しはありません
購入したクレジット自分で前払いした分。Billing ページの Credit balance に出ます購入から1年で期限切れ。返金はありません
月間の支出上限組織ごとの上限。クレジットで払った分も数えられます毎月1日にリセット

使われる順番は、含まれるクレジットが先、購入分が後です。そしてオートリロードは購入分の残高だけを見て動きます。含まれるクレジットがどれだけ残っていても、購入分がしきい値を下回れば補充が走る、という設計です。支払い方法そのものが通らない場合は、「Claude Pro/Max の課金・支払いエラーを解決する方法:よくある問題と対処法まとめ」が入口になります。

切り分けの順番:まず「何を呼んだか」を見ます

私が最初に確認するのは、残高の数字ではなく、エラーを出した呼び出しの種類です。含まれるクレジットが使えるのは、Claude API、Managed Agents、Agent SDK、Console のプレイグラウンドです。Claude Code と、Claude アプリの追加利用分は対象外になっています。

つまり、含まれるクレジットしか持たない組織で Claude Code を動かすと、次のように表示されます。

Credit balance too low · Add funds: https://platform.claude.com/settings/billing

API の残高があるのにこの表示が出る場合、原因は残高ではなく「対象外の呼び出しだった」ことにあります。ここで購入を急ぐ前に、次の順で見ていきます。

  1. Console の Billing ページを開き、Credit balance と Promotional credits のどちらが0か
  2. 失敗した呼び出しは API/Agent SDK か、Claude Code か
  3. Cost ページで、今月の支出が月間の上限に近づいていないか

三つ目は見落としやすい点です。上限に達したときの 400 の見分け方は、別の記事「上限に達したのに 400 が返ってきた — 自分で決めた利用上限・階層の月間上限・レート制限を見分ける」に詳しく書きました。残高エラーと上限エラーは、症状が似ていても直し方がまったく違います。

失敗から引いた線引き

以前の私は、夜間に走らせるスクリプトの失敗を「次の朝に気づけばよい」と考えていました。いま思えば、財布は一つだと思い込んでいたのかもしれません。実際には、含まれるクレジットは請求サイクルの終わりで消えるため、月末の夜にだけ残高が落ちるという形で、気づきにくい時間帯に切れます。

いまは、残高の監視はコンソールに任せず、呼び出す側のコードが「財布が空」を自分の言葉で報告するようにしています。次のラッパーは、残高エラーだけを別扱いにして、通知用の終了コードを返すものです。

import sys
import anthropic
 
client = anthropic.Anthropic()  # ANTHROPIC_API_KEY は環境変数から読み込みます
 
LOW_BALANCE_MARK = "credit balance is too low"
 
def ask(prompt: str) -> str:
    try:
        msg = client.messages.create(
            model="claude-sonnet-5",
            max_tokens=512,
            messages=[{"role": "user", "content": prompt}],
        )
        return msg.content[0].text
    except anthropic.APIStatusError as e:
        # 残高エラーはリトライしても直らないので、再試行せずに終了コード 3 で止める
        if LOW_BALANCE_MARK in str(e).lower():
            print("残高不足: Billing ページで Credit balance と Promotional credits を確認", file=sys.stderr)
            sys.exit(3)
        raise  # それ以外のエラーは通常のエラー処理へ渡す
 
if __name__ == "__main__":
    print(ask("今日の集計メモを3行でまとめてください。"))

このコードで解決しているのは、「残高が空のときに、リトライを繰り返して夜じゅう失敗し続ける」という状況です。残高エラーは待っても直らないため、再試行の対象から外し、終了コード 3 という決まった目印で止めます。cron やスケジューラ側で、終了コードが 3 のときだけ通知を飛ばせば、他の失敗と混ざりません。

補充のしかたを、先に決めておきます

切れたあとに慌てて買うよりも、先に二つだけ決めておくほうが、はるかに気持ちが楽です。

  • オートリロードを使うか:トリガーとなる残高(When credit balance reaches)と、戻す先の残高(Bring credit balance back up to)の二つを決めます。すでにしきい値を下回った状態で有効にすると、その場で補充が走る点に注意が必要です
  • 誰が買えるか:クレジットの購入と支払い方法の変更には、Admin か Billing の役割が要ります。一人で運用している方でも、組織を作り直したときは自分の役割を見ておくと安心です

また、プロジェクトごとに使い過ぎを防ぎたい場合は、専用のワークスペースを作り、そのワークスペースに支出上限を設ける方法が公式に案内されています。同じ組織の API キーとワークスペースは、同じ残高から引かれるためです。キー側の失効を予定に変える考え方は、「APIキーに有効期限を付けると、失効は事故ではなく予定になる — 無人運用の鍵カレンダー設計」に書きました。

私の線引き

空になる前に気づく仕組みは、画面ではなくコードに置きます。 画面は見に行かなければ何も教えてくれませんが、終了コードは、見に行かなくても朝には届いています。

まずは、いま動かしているスクリプトのうち、夜間や無人で走るものを一つだけ選び、上のように残高エラーを別の終了コードで止めるところから始めていただければと思います。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⬡ API & SDK2026-10-22
上限に達したのに 400 が返ってきた — 自分で決めた利用上限・階層の月間上限・レート制限を見分ける
Claude API の「上限」系エラーは3種類あり、ステータスも待てば直るかどうかも違います。自分で設定した上限は400、階層の月間上限は429、通常のレート制限も429。見分けるコードと判断表をまとめました。
⬡ API & SDK2026-09-02
thinking ブロックを弾く 400 が出たとき、会話履歴のどこが書き換わっていたか
Claude Fable 5.1 から、thinking ブロックより前の system・tools・messages を書き換えたリクエストが 400 で弾かれるようになりました。自分のエージェントループが該当するかを1リクエストで確かめる手順と、system の組み立て直し・履歴の切り詰めを書き換えなしのやり方へ移す実装をまとめます。
⬡ API & SDK2026-04-26
Claude API の「Spanner temporarily unavailable」が返ってきたときの切り分けとリトライ設計
Claude API で「Spanner temporarily unavailable」が返ってきたときに、まず何を見るか。自分のコードか Anthropic 側かの切り分け、指数バックオフ+ジッターの実装、モデル降格、バッチ処理での割り切りまでを、運用で試した順に書き残します。