カテゴリー / インストール・ログイン・設定

Claude Code APIキーの設定と優先順位、サブスク併用の注意点

この記事の目次

Claude Code APIキーは、環境変数 ANTHROPIC_API_KEY に入れるのが基本の渡し方です。設定したキーは、Pro や Max でログイン済みでも、承認した時点でサブスクリプションより優先されます。キーを使うつもりがないのに残っていると、請求先が変わったり、This organization has been disabled のようなエラーで止まったりします。この記事では、キーの渡し方3通り、サブスクとの優先順位、エラー別の切り分けを公式ドキュメントの記述に沿って説明します。

Claude Code APIキーは誰が使うもので、サブスクのログインと何が違うのか

Claude Code の認証には、claude.ai アカウントのサブスクリプション、Claude Console、Amazon Bedrock などのクラウド事業者があります。この記事では、個人が迷いやすいサブスクリプション(Pro、Max、Team、Enterprise)と Console の API 従量課金の2つを比べます。公式の認証ページは、Console 経由の設定を「API ベースの課金を好む組織」向けとして案内しています。

項目 サブスクリプション(/login) Claude Console の APIキー
課金 Pro・Max は利用がプランに含まれる トークン単位で組織に課金
渡し方 ブラウザでログイン ANTHROPIC_API_KEY、apiKeyHelper、または /login で Console を選ぶ
利用量の確認先 /usage のプラン使用量 Console の Usage ページ(/usage の金額は推定)
/usage-credits 使える APIキー認証では使えない

Console で使う場合、管理者からの招待が先に必要です。招待時のロールで作れるキーの範囲が変わり、「Claude Code」ロールは Claude Code 用のキーだけ、「Developer」ロールはあらゆる種類のキーを作成できます。

Console に初めて Claude Code で認証すると「Claude Code」という名前のワークスペースが自動で作られます。これは Claude Code の認証と利用の集計専用で、ここに APIキーは作れません。費用はワークスペース単位の支出上限と Console の利用状況レポートで管理します。

料金プランの比較そのものはClaude Codeの料金プラン比較、サブスクのログイン手順はClaude Codeのログイン方法にまとめています。

Claude Code にAPIキーを渡す方法は何通りあるのか

公式ドキュメントに書かれている渡し方は次の3つです。用途で選びます。

方法 向いている場面 注意点
/login で Console アカウントを選ぶ 手元の端末で Console 課金を使う v2.1.242 以降はキーを作らないサインインが推奨
環境変数 ANTHROPIC_API_KEY 発行済みのキーを手元やスクリプトで使う 対話モードでは最初に承認を求められる
設定キー apiKeyHelper 保管庫から短命のキーを取る、ローテーションする コマンドの出力がキーとして送られる

/login で Console アカウントを選ぶ

/login で Anthropic Console のアカウントを選ぶと、v2.1.242 以降はサインイン方法を2つから選べます。

  • Sign in with your Console account((recommended) 表示): ログインの OAuth トークンを Anthropic プロファイルとして保存し、APIキーは作りません
  • Create an API key((legacy) 表示): Claude Code が Console の APIキーを作り、他の認証情報と一緒に保存します

公式は、プロファイルは OAuth のログイン、APIキーは静的な認証情報だと説明しています。キーなしのサインインを選ぶ前に ANTHROPIC_API_KEY を unset しておくよう書かれているので、シェル環境に古いキーが残っていないか先に確認してください。

保存先は OS で異なります。macOS は暗号化された Keychain、Linux は ~/.claude/.credentials.json(ファイルモード 0600)、Windows は %USERPROFILE%\.claude\.credentials.json です。macOS で Keychain に書き込めない状態(SSH セッションでロックされている場合など)では、キーを作る Console ログインは Keychain が書き込める状態になるまで失敗します。

環境変数 ANTHROPIC_API_KEY で渡す

Console で発行済みのキーがあるなら、環境変数に入れて claude を起動します。このキーは X-Api-Key ヘッダーで送られます。

対話モードでは、キーを使うかどうかを一度だけ聞かれ、選んだ結果は記憶されます。あとから変えたいときは /config の「Use custom API key」の切り替えを使います。この切り替えは ANTHROPIC_API_KEY が環境にあるときだけ表示されます。

一方、非対話モード(-p)では確認が出ず、キーがあれば常にそれを使います。スクリプトやCIで claude -p を呼ぶときは、環境変数に入っているキーで課金されると考えてください。

キーの保管先をシェルの設定ファイルや .env に書く場合、そのファイルをリポジトリに含めないことが前提です。設定ファイル settings.json の env ブロックにも環境変数を書けますが、公式はこの値が平文で保存され、Claude Code が起動するすべてのサブプロセスに渡ると明記し、API の認証情報には apiKeyHelper を使うよう案内しています。

apiKeyHelper でコマンドからキーを取る

apiKeyHelper は、指定したシェルコマンドの出力を認証情報として送る設定です。macOS と Linux では /bin/sh、Windows では cmd で実行され、出力は X-Api-Key と Authorization: Bearer の両方のヘッダーで送られます。既定では未設定です。公式の例は次のとおりです。

{
  "apiKeyHelper": "/bin/generate_temp_api_key.sh"
}

Claude Code は出力をキャッシュし、次の場合にコマンドを再実行します。

  • キャッシュの有効期間が切れたとき(既定は5分。CLAUDE_CODE_API_KEY_HELPER_TTL_MS でミリ秒単位に変更可能)
  • Anthropic API へのリクエストが 401 か 403 で失敗したとき

コマンドが10秒を超えてもキーを返さないと、プロンプトバーに経過時間の警告が出ます。また、プロジェクト設定やローカル設定に書いた apiKeyHelper は、対話セッションではワークスペースの信頼確認を承認するまで実行されません。

settings.json の置き場所やスコープの違いはsettings.jsonの書き方で扱っています。

APIキーとサブスクを両方設定したら、どちらが使われるのか

複数の認証情報があるとき、Claude Code は認証の優先順位に沿って1つを選びます。上にあるものほど優先です。

順位 認証情報 補足
1 クラウド事業者の認証情報 CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX、CLAUDE_CODE_USE_FOUNDRY のいずれかを設定したとき
2 ANTHROPIC_AUTH_TOKEN Authorization: Bearer で送信。LLM ゲートウェイ向け
3 ANTHROPIC_API_KEY X-Api-Key で送信
4 apiKeyHelper の出力 動的・ローテーションする認証情報向け
5 CLAUDE_CODE_OAUTH_TOKEN claude setup-token で発行する長期トークン
6 Anthropic プロファイルとフェデレーションの認証情報 ant CLI や Workload Identity Federation が使うもの
7 /login のサブスク OAuth Pro、Max、Team、Enterprise の既定

つまり、ANTHROPIC_API_KEY を設定して承認すると、/login 済みのサブスクより先にキーが使われます。環境変数のリファレンスにも、ログイン中であってもキーがサブスクの代わりに使われると書かれています。サブスクに戻したいときは unset ANTHROPIC_API_KEY を実行します。

どちらが有効かは /status で確認できます。ログインと APIキーの両方がある場合、/status は使われていない方の認証情報に印を付けます。

認証経路の適用範囲にも違いがあります。apiKeyHelper、ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN が効くのは CLI と、それを包む VS Code 拡張、Agent SDK、GitHub Actions です。Claude Desktop とクラウドセッションはこれらを読みません。クラウドセッションは常にサブスクの認証情報を使い、クラウド環境に ANTHROPIC_API_KEY を設定してもサブスクを上書きしません。

サブスク加入中なのに「This organization has been disabled」と出たら何を確認するか

有効なサブスクがあるのに API Error: 400 ... "This organization has been disabled" が出る場合、公式のトラブルシューティングは、環境変数 ANTHROPIC_API_KEY がサブスクを上書きしていると説明しています。前の勤務先や過去のプロジェクトで使ったキーがシェルの設定ファイルに残っているのがよくある原因です。

今のシェルから外すには次を実行します(macOS / Linux)。

unset ANTHROPIC_API_KEY
claude

Windows PowerShell では次のとおりです。

Remove-Item Env:ANTHROPIC_API_KEY
claude

シェルの設定ファイルに export 行が残っていると、新しいターミナルで再び読み込まれます。恒久的に直すには、~/.zshrc、~/.bashrc、~/.profile の中にある export ANTHROPIC_API_KEY=... の行を削除します。Windows は PowerShell プロファイル($PROFILE)とユーザー環境変数を確認します。最後に /status で、サブスクの認証が有効になったかを確かめてください。

400 エラー全般の読み方はClaude Code APIエラー400の対処で扱っています。

「Invalid API key」や apiKeyHelper のエラーはどう切り分けるか

APIキー絡みのエラーは、表示される文言で原因の候補が絞れます。

Invalid API key · Fix external API key

ANTHROPIC_API_KEY か apiKeyHelper のキーが API に拒否された、または Claude Code が ANTHROPIC_API_KEY のキーを送信前に止めたときの表示です。公式が挙げる確認項目は次のとおりです。

  • キーのタイプミスと、Console でキーが失効していないかを確認する
  • 同じシェルで env | grep ANTHROPIC(PowerShell では Get-ChildItem Env:ANTHROPIC*)を実行する。direnv、dotenv 系のシェルプラグイン、IDE のターミナルは、プロジェクトの .env から古いキーを読み込むことがある
  • サブスクで使うなら ANTHROPIC_API_KEY を unset して /login する
  • apiKeyHelper を使っているなら、そのスクリプトを直接実行して標準出力に正しいキーが出るか確かめる
  • /status で実際に使われている認証情報を確認する

メッセージの続きに Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break のような説明が付いている場合、キーは API に届いていません。改行や見えない文字など、HTTP ヘッダーに載せられない文字が入っていて、Claude Code が送信前に止めています。公式は、ドキュメントやチャットからコピーした認証情報に見えない文字や余分な改行が混ざるのがよくある原因だとしています。キーを貼り直すときは、前後に余計な文字が付いていないか確認してください。

Your apiKeyHelper script is failing

apiKeyHelper のコマンドがエラー終了した、タイムアウトした、何も出力しなかった、またはキー以外の文字列(ログイン時のバナーやログ行など)を出力したときに出ます。公式によれば、失敗は3回以内にこのエラーとして表に出ます。

ここで /login しても直りません。設定が残っている限り、apiKeyHelper の出力が保存済みのログインより優先されるためです。公式が挙げる対処は次のとおりです。

  • 設定したコマンドをシェルで直接実行して失敗を再現する
  • コマンドがセッション切れを報告しているなら、認証情報の提供元に入り直す(SSO や保管庫へのサインインなど)
  • コマンドが標準出力にキーだけを出し、終了コード 0 で終わるよう直す。出力は印字可能な ASCII の1トークンで、最大 16,384 文字
  • /status で apiKeyHelper の行が Failing になっていないか、失敗の詳細を確認する

ログイン後に 403 Request not allowed が出る

Console のユーザーなら、アカウントに「Claude Code」か「Developer」のロールが付いているかを確認します。ロールは管理者が Console の Members ページで付与します。

CIやスクリプトでは APIキーと長期トークンのどちらを使うのか

ブラウザでログインできない環境向けに、公式は2つの手段を用意しています。

  • claude setup-token: サブスク向けの期限付き OAuth トークンを1年の有効期間で発行します。Pro、Max、Team、Enterprise のいずれかが必要です。トークンはどこにも保存されないので、表示された値を CLAUDE_CODE_OAUTH_TOKEN に設定します
  • ANTHROPIC_API_KEY: Console のキーで従量課金にします
claude setup-token

選ぶときに効いてくるのが --bare モードです。--bare は OAuth の認証情報もシステムのキーチェーンも読まず、CLAUDE_CODE_OAUTH_TOKEN も読みません。--bare を付けるスクリプトでは、ANTHROPIC_API_KEY か apiKeyHelper で認証する必要があります。公式の例は次のとおりで、実行前に ANTHROPIC_API_KEY を設定しておくよう書かれています。

claude --bare -p "Summarize README.md" --allowedTools "Read"

GitHub Actions では、キーをリポジトリシークレット ANTHROPIC_API_KEY に保存し、ワークフローの入力 anthropic_api_key に ${{ secrets.ANTHROPIC_API_KEY }} を渡します。公式は、APIキーや OAuth トークンをリポジトリに直接コミットせず、GitHub Secrets に置いて参照するよう求めています。ワークフローの組み方はClaude Code GitHub Actionsの使い方を参照してください。

APIキーを漏らさず、分けて使うにはどうするか

公式の記述から取れる対策は次の3点です。キーを settings.json の env に平文で書かないことは、前述のとおりです。

1. アカウントや用途ごとに設定ディレクトリを分ける。 CLAUDE_CONFIG_DIR を切り替えると、ディレクトリごとに設定、セッション履歴、claude.ai のログインまたは APIキーを別々に持てます。公式の例は、仕事用の別名を作る次の alias です。

alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'

2. Claude Code が起動するサブプロセスからキーを外す。 CLAUDE_CODE_SUBPROCESS_ENV_SCRUB を 1 にすると、Bash コマンド、フック、stdio の MCP サーバーなど、Claude Code が起動するサブプロセスの環境から認証情報が取り除かれます。ANTHROPIC_API_KEY も除去の対象です。Claude Code 本体は自分の API 呼び出し用にキーを保持し続けます。公式はこれをプロンプトインジェクションで読まれる範囲を減らす手段とし、唯一の対策ではなく、絞った権限ルールと並べる一つの層として使うよう書いています。

3. 不要になったキーは Console で削除する。 GitHub Actions のシークレットを消しても、中にあったキーは有効なままです。キーそのものを使えなくするには、Console でキーも削除する必要があります。漏洩に気づいたときも、保存場所から消すだけでなく Console 側でキーを削除してください。

権限ルールやサンドボックスと合わせた設定はClaude Codeのセキュリティ設定で解説しています。

公式の記述で確認できなかったこと

今回確認した Claude Code の公式ドキュメントの範囲では、Console の画面でキーを作るボタンの名前、作成後にキーを再表示できるかどうか、API の単価は確認できませんでした。これらは Console の画面と Anthropic の料金ページで確認してください。この記事の内容は 2026年10月18日時点の Claude Code 公式ドキュメントに基づいています。v2.1.242 以降のキーなしサインインのようにバージョン条件が付いた挙動は、手元の Claude Code のバージョンを確かめてから使ってください。

複数プロジェクトでの鍵の分け方や、チームでの運用ルールの文書化まで継続して学びたい場合は、月額1,980円から参加できる学習コミュニティ「AI駆動ラボ」もあります。