0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Max/Pro 契約なのに Claude Code で『Credit balance is too low』が出るのは、環境に残った ANTHROPIC_API_KEY のせい

0
Last updated at Posted at 2026-10-24

Claude の Max(または Pro)を契約していて、Claude Code にもそのアカウントでログインしている。なのに、ある日こう言われることがあります。

Credit balance is too low

画面によっては次のように出ます。

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

サブスクの料金はちゃんと払っています。それなのに「残高が足りないのでチャージして」と言われる。言われたとおり Console でクレジットを買ってしまう前に、まず確認してほしいことがあります。

結論

シェルに ANTHROPIC_API_KEY が残っていて、Claude Code がサブスクではなくその API キーで動いている可能性が高いです。公式の Error reference でも、サブスク契約者がこのエラーを見たときに最初に確認する項目として挙げられています。

確認はこの1行でできます。

claude auth status

"authMethod": "api_key" と出たら当たりです。キーを外せば、サブスクに戻ります。

なぜ API キーのほうが使われるのか

Claude Code は、複数の認証情報があると決まった順番で選びます。公式ドキュメント(Authentication)の優先順位はこうです。

  1. クラウドプロバイダ(CLAUDE_CODE_USE_BEDROCK / CLAUDE_CODE_USE_VERTEX / CLAUDE_CODE_USE_FOUNDRY)
  2. ANTHROPIC_AUTH_TOKEN
  3. ANTHROPIC_API_KEY
  4. apiKeyHelper の出力
  5. CLAUDE_CODE_OAUTH_TOKEN(claude setup-token で発行する長期トークン)
  6. Anthropic のプロファイル / フェデレーション
  7. /login でのサブスクのログイン

サブスクのログインは一番最後です。環境変数に API キーが1つあるだけで、そちらが勝ちます。

対話モードで起動したときは、ANTHROPIC_API_KEY を見つけると「この API キーを使いますか」と一度だけ聞かれ、その答えが記憶されます。昔なにげなく「はい」を選んでいると、それ以降は黙ってキーが使われ続けます(答えは /config の「Use custom API key」で変えられます。この項目はキーが環境変数にあるときだけ表示されます)。claude -p で実行した場合は、確認すらありません。キーがあれば必ずそれを使います。

よくある「キーが紛れ込む」経路はこのあたりです。

  • 以前 API を試したときに ~/.zshrc や ~/.bashrc に export ANTHROPIC_API_KEY=... と書いた
  • 別のツール(SDK のサンプル、他の AI ツール)のために設定したキーが残っている
  • プロジェクトの .envrc(direnv)や .env で読み込まれている
  • 前の職場や昔のプロジェクトの組織のキー

最後のケースで、その組織がもう無効になっていると、エラーは This organization has been disabled. や Your ANTHROPIC_API_KEY belongs to a disabled organization に変わります。原因と直し方は同じです。

手元で再現した結果

サブスク(Max)でログイン済みの端末で、ダミーの API キーを環境変数に入れて試しました(Claude Code 2.1.310 / macOS / 2026-10-25)。

まず、キーなしの状態です。

$ claude auth status
{
  "loggedIn": true,
  "authMethod": "claude.ai",
  "apiProvider": "firstParty",
  ...
  "subscriptionType": "max"
}

同じ端末で、環境変数にキーを入れるとこう変わります。

$ ANTHROPIC_API_KEY=sk-ant-api03-dummy claude auth status
{
  "loggedIn": true,
  "authMethod": "api_key",
  "apiProvider": "firstParty",
  ...
  "apiKeySource": "ANTHROPIC_API_KEY"
}

キーなしでは authMethod が claude.ai、ダミーキーを入れると api_key に変わる

authMethod が claude.ai から api_key に変わり、subscriptionType が消えました。ログイン自体は残っているのに、使われなくなっています。

この状態で claude -p を実行すると、次のように出ました。

$ ANTHROPIC_API_KEY=sk-ant-api03-dummy claude -p "hi"
⚠ claude.ai connectors are disabled because ANTHROPIC_API_KEY or another auth source is set and takes precedence over your claude.ai login · Unset it to load your organization's connectors
Invalid API key · Fix external API key

claude -p はサブスクのログインより環境変数のキーを優先し、Invalid API key で止まる

今回はダミーのキーなので Invalid API key になりました。本物のキーで、その組織の Console 残高がゼロなら Credit balance is too low になります。1行目の警告にも、API キーが claude.ai のログインより優先されていると書いてあります。

直し方

1. どこで設定されているかを探す

# いまのシェルに入っているか
env | grep ANTHROPIC

# シェルの設定ファイルに書いていないか
grep -n ANTHROPIC ~/.zshrc ~/.zprofile ~/.zshenv ~/.bashrc ~/.bash_profile ~/.profile 2>/dev/null

# Claude Code の設定ファイルの env に書いていないか
grep -n ANTHROPIC ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>/dev/null

# いまいるディレクトリの direnv / .env
grep -n ANTHROPIC .envrc .env 2>/dev/null

settings.json の "env" に書いた環境変数も Claude Code に渡ります。シェルを探しても見つからないときは、ここも見てください。apiKeyHelper を設定している場合も、サブスクより優先されます。

2. 外して、開き直す

unset ANTHROPIC_API_KEY

見つけた設定ファイルの行も消すかコメントアウトして、ターミナルを開き直します(unset は今のシェルにしか効きません)。

3. 戻ったことを確認する

claude auth status

"authMethod": "claude.ai" と "subscriptionType" が出ていれば元に戻っています。Claude Code のセッション中なら /status でも確認できます。ログインが外れていたら /login してください。

API キーは使いたい、でもサブスクと混ざるのは困る場合

SDK や他のツールのためにキー自体は必要、ということもあります。その場合は、シェル全体で export しないのが一番安全です。

  • direnv を使い、キーが必要なプロジェクトのディレクトリでだけ読み込む
  • スクリプトの中でだけ渡す(ANTHROPIC_API_KEY=... python script.py)

CI などで claude -p をサブスクで動かしたいときは、claude setup-token で発行したトークンを CLAUDE_CODE_OAUTH_TOKEN に入れます。ただし優先順位は ANTHROPIC_API_KEY のほうが上なので、同じ環境に API キーが残っているとやはりそちらが使われます。

本当に API キーで使っている場合

サブスクではなく、意図して Console の API キーで Claude Code を使っているなら、メッセージどおり残高切れです。

  • platform.claude.com/settings/billing でクレジットを追加する。自動チャージ(auto-reload)を有効にしておくと、残高ゼロで止まるのを防げる(公式の推奨)
  • チャージしたのに直らないときは、/login をやり直す、またはクレジット購入後に API キーを作り直すと通ったという報告が GitHub の issue に複数あります(#54839、#31537)
  • Console で月の支出上限を残高より低く設定していないかも確認する

なお、Max プランに付いてくる月々の API クレジットは、Claude Code やアプリの利用には使えないと公式ヘルプに書かれています(Using Claude Code with your Pro or Max plan)。

同じ原因で出る別のエラー

API キーの紛れ込みは、残高以外のエラーとしても出てきます。どれも、最初に claude auth status を確認するところから始めてください。

メッセージ 紛れ込んだキーがどういう状態か
Credit balance is too low その組織の Console 残高がない
This organization has been disabled. その組織が無効になっている
Request rejected (429) そのキーのレート制限が低い
Invalid API key · Fix external API key キーそのものが無効(失効・打ち間違い)
claude.ai connectors are disabled because ANTHROPIC_API_KEY ... エラーではないが、claude.ai のコネクタが読み込まれない

Claude Code で出るほかの英文エラーと、それぞれの対処は、早見表にまとめています。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?