Claude CodeはAPI keyだけで使える?
Claude CodeはClaudeサブスクリプションなしでもAnthropic API keyで実行できます。サブスクとAPIは別請求です。セッションの認証方法の確認と切り替え方を解説します。
Claude Code セッションで使用している認証情報はどれですか?
Claude Code へのログイン方法は2つあります。claude.ai の Claude サブスクリプションアカウントでサインインする方法と、Anthropic Console の組織に対して認証する方法です。後者では、トークン使用量がプランではなく、その組織の API(application programming interface)アカウントに請求されます。実行中のセッションで /status を実行すると、現在有効な方法を確認できます。Status タブには、サインインに使用したアカウントの Login method 行が表示されます。API key が認証情報を提供している場合は、追加で API key 行が表示されます。
このツールがそもそもプランの対象かどうかは別の問題です。これはClaude Code が Claude Pro サブスクリプションに含まれるかどうかで説明しています。また、Claude API に対する key の仕組みについては、Claude API 認証の仕組みで説明しています。ここでは、これら2つでは扱っていない内容を説明します。セッションが実際に選択した認証情報と、その変更方法です。
以下の動作は、2026年10月10日に確認した Anthropic の Claude Code 認証ドキュメントに基づいています。Claude Code は頻繁にリリースされ、これらの動作のいくつかには最低バージョンが指定されています。そのため、マシンに問題があると判断する前に claude --version を実行してください。
1 つのメールアドレスを共有できる2つのアカウント
claude.ai アカウントと、platform.claude.com の Claude Console アカウントは別のアカウントです。同じメールアドレスを設定しても、別々のサインインとして扱われ、残高も所属する組織も異なります。一方を作成しても、もう一方は作成されません。Console 組織にチャージしても、プランの残高には追加されません。
ただし、逆方向には例外が1つあります。これは 2026年10月10日時点で確認した内容です。現在、Max 5x プランと Max 20x プランには月額 API クレジットが含まれ、それぞれ月額 $100 と $200 が付与されます。Team プランには共有プールが付与されます。これらのクレジットが Console 組織に反映されるのは、claude.ai の請求設定から組織をリンクした後です。また、Claude Code には使用できません。Anthropic の platform ドキュメントでは Claude Code は対象外と記載されています。ヘルプセンターでも、対象としているのはリンクした組織の API key を使用する claude -p の実行だけです。そのため、これらのクレジットしか保有していない組織に対して課金するインタラクティブセッションは Credit balance too low で失敗します。
残高が異なるのは、請求モデルが異なるためです。サブスクリプションでのログインでは、プランの利用枠を消費します。この利用枠は継続する5時間のウィンドウと週次ウィンドウでリセットされ、Claude の Web 版と共有されます。Console の認証情報では、組織に対してトークン単位で課金されます。正確な使用量と料金は Console の使用量ページで確認できます。この違いが実際の作業でどのようなコストになるかは、トークン単位の従量課金とサブスクリプション料金の比較で説明します。
一方のアカウント種別では、サブスクリプション経由でログインできません。Anthropic がログイン方法として挙げているのは、Pro または Max サブスクリプション、Claude for Teams または Enterprise のシート、Claude Console アカウント、クラウドプロバイダー、Cloud gateway です。ここでいう Cloud gateway は、組織が運用するセルフホスト型の Claude apps gateway であり、/login を介した企業 SSO (single sign-on) でサインインします。無料の claude.ai アカウントはこの一覧に含まれません。そのため、無料プランのユーザーにはログインに使用できるサブスクリプション認証情報がなく、無料の Claude ティアに含まれるものと含まれないものもコマンドラインツールには適用されません。残る方法は、API クレジットを持つ Console 組織を使用することです。これは別の形態の有料アカウントです。
パス1: Claude サブスクリプションでサインインする
プロジェクトディレクトリで claude を実行します。初回起動時にブラウザーウィンドウが開き、プランを契約している claude.ai アカウントでサインインできます。
claudeサーバーでは動作が異なる点が2つあります。ブラウザーが開かない場合は c を押してログイン URL をクリップボードにコピーし、自分のマシンのブラウザーに貼り付けます。そのブラウザーにログインコードが表示され、ターミナルに戻らない場合は、コードを入力を求めるプロンプトに貼り付けます。後者は SSH(secure shell)、WSL2、コンテナ内では正常な動作です。ブラウザーから、リモートマシン上で Claude Code が起動したローカルのコールバックサーバーに接続できないためです。
ログインが完了したら、推測で済ませずに確認します。セッションを開始し、/status を実行します。Status タブにログイン方法と、保存された組織名およびメールアドレスが表示されます。/login を実行すると、別のアカウントでログインフローを再実行できます。/logout は保存された認証情報を削除します。ログアウトすると初回セットアップの状態もリセットされるため、次回の claude でオンボーディングが再び案内されます。
サーバーを再構築したり他の人に引き渡したりする場合は、認証情報の保存場所を把握しておく必要があります。
- Linux:
~/.claude/.credentials.json、ファイルモードは0600。 - macOS: 暗号化された Keychain。SSH セッション中に Keychain がロックされているなど、Keychain が書き込みを拒否した場合、Claude Code は同じ
0600ファイルにフォールバックします。API key を作成する Console ログインではこのフォールバックは行われず、Keychain に書き込めるようになるまで失敗します。 - Windows:
%USERPROFILE%\.claude\.credentials.json。プロファイルディレクトリ自体のアクセス制御により、ユーザー本人だけがアクセスできます。 CLAUDE_CONFIG_DIRが設定されているプラットフォーム: ファイルはそのディレクトリ配下に移動します。macOS の Keychain エントリもその値を基準に管理されるため、異なるCLAUDE_CONFIG_DIRで開始したセッションは別の認証情報を読み取ります。
Claude Code は /login と /logout を通じてこのファイルを管理します。手動で編集してアカウントを切り替える方法はサポートされていません。
Console 組織に対して認証する方法
Console へのアクセスは管理者から始まります。管理者は Console の Settings、Members、Invite の順に進み、あなたを招待します。さらにロールも割り当てます。Claude Code ロールでは Claude Code API key のみ作成できます。Developer ロールでは任意の key を作成できます。その後、/login プロンプトで Anthropic Console アカウントを選択します。
Claude Code v2.1.242 以降では、Console への認証方法が2つあり、それぞれ保存する情報が異なります。Console アカウントでサインインすると、そのブラウザーでのサインインに使った OAuth(オープン認証)token が保持され、Anthropic profile として保存されます。API key は作成されません。Claude Code はこのログインを自動的に更新します。更新に失敗すると、再度サインインするまでリクエストは失敗します。この keyless サインインを行うと、マシンに保存されている claude.ai のログインからもサインアウトされます。プロンプトで legacy と表示される API key の作成では、Console key が生成され、他の認証情報と一緒に保存されます。固定 key は更新されないため、誰かが revoke するまで使用できます。これは build server では便利ですが、laptop ではリスクになります。
keyless Console サインインを開始する前に ANTHROPIC_API_KEY を unset にしてください。この変数が設定されていると、Claude Code はログインプロンプトを完全に省略し、見つかった key の承認を求めます。
常に選択肢が表示されるとは限りません。cloud provider に対して session を実行する場合、いずれかの settings file で forceLoginOrgUUID が設定されている場合、forceLoginMethod が "claudeai" または "console" に固定されている場合、またはマシン上に managed settings source が存在し、Claude Code がそれを読み取れない場合、Claude Code は確認なしで key を作成します。これらは管理者の判断による設定です。そのため、keyless オプションが表示されない場合は、fleet の管理担当者に確認してください。/status には、session が読み込んだすべての settings file の名前を示す Setting sources 行も出力されます。該当する場合は managed source の名前も表示されます。
Claude Code を Console 組織に対して初めて認証すると、Console はそのための "Claude Code" という workspace を作成します。この workspace は Claude Code の利用額を1か所で追跡するために存在します。workspace 内で API key を作成することはできません。
ログイン後に ANTHROPIC_API_KEY が優先される理由
Claude Code は、どの認証情報を使用するか尋ねません。固定された順序で取得元を確認し、最初に見つかったものを使用します。2026年10月時点のドキュメントでは、順序は次のとおりです。
CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX、またはCLAUDE_CODE_USE_FOUNDRYが設定されている場合のクラウドプロバイダー認証情報。- ベアラートークンで認証するゲートウェイ向けに、
Authorization: Bearerヘッダーとして送信されるANTHROPIC_AUTH_TOKEN。 X-Api-Keyヘッダーとして送信されるANTHROPIC_API_KEY。- 設定ファイルで指定された
apiKeyHelperスクリプトの出力。 claude setup-tokenから取得した長期トークンであるCLAUDE_CODE_OAUTH_TOKEN。- Anthropic プロファイルおよびフェデレーション認証情報。
antCLI と Workload Identity Federation が使用する認証情報です。 /loginが書き込むサブスクリプション認証情報。
この一覧には、前後関係に関する2つの例外があります。ANTHROPIC_PROFILE でプロファイルを指定した場合、フェデレーション変数が設定されている場合、またはアクティブなプロファイルが Workload Identity Federation プロファイルである場合、そのプロファイルは6番目に位置します。user_oauth モードのアクティブなプロファイルは、ant auth login またはキーレスの Console サインインによって書き込まれる種類のものですが、動作中の /login 認証情報より下位になります。また、サインイン済みの Claude apps ゲートウェイセッションは、この一覧の対象外です。クラウドプロバイダー変数を含め、一覧内のすべての認証情報より優先されます。管理者の管理対象設定でゲートウェイへのサインインが必須になっている場合、Claude Code は他の取得元をスキップし、/login によるサインインを求めます。
どちらの例外も、エクスポートされたキーからサブスクリプションを保護するものではありません。ゲートウェイがない場合、1番目から5番目までのすべてが、サインインに使用したアカウントより優先されます。そのため、プロセス環境のどこかでエクスポートされた ANTHROPIC_API_KEY が使用され、プランを使っているつもりでも、セッションの料金は Console 組織に請求されます。故障ではありません。記載された順序どおりに動作しているため、警告も表示されません。
見落としやすくする要因が2つあります。対話セッションでは、Claude Code は見つかったキーを使用するかどうかを1回だけ尋ね、回答を記憶します。そのため、1か月前の選択が現在も適用されます。-p を使う非対話モードでは、プロンプトは一切表示されず、キーが存在すれば常に使用されます。-p は cron ジョブや CI(継続的インテグレーション)ステップが実行するモードです。そのため、無人ジョブでは誤った認証情報が最も長く見過ごされます。
セッション内で簡単に目視確認できます。ANTHROPIC_API_KEY が設定されている間は、/config に「カスタム API キーを使用」トグルが表示されます。このトグルは変数が設定されている間だけ存在するため、表示されない場合は環境がクリーンであることを意味します。
サーバーに残った鍵を見つける
エクスポートされた鍵は、シェルのプロファイル以外にも残ります。
~/.bashrc、~/.bash_profile、~/.profile、~/.zshrc。新しいログインシェルはすべて、これらを読み込みます。- systemd の unit。
Environment=またはEnvironmentFile=により、サービスとして実行する処理に環境変数を設定できます。 - tmux サーバー。起動時の環境変数を保持します。今日開いたペインが、先週プロファイルから削除した変数を継承することがあります。編集前からサーバーが起動したままだからです。
- コンテナイメージまたは CI ジョブ定義。シェル内から読めるファイルの外部で変数が設定されていることがあります。
- Claude Code の設定ファイルにある
envブロック。通常の設定キーであり、通常の設定の優先順位に従います。
ほかの確認をする前に、次を実行します。
[ -n "$ANTHROPIC_API_KEY" ] && echo "ANTHROPIC_API_KEY is set" || echo "not set"
env | grep -E '^(ANTHROPIC_|CLAUDE_CODE_)' | cut -d= -f1
grep -n 'ANTHROPIC_API_KEY' ~/.bashrc ~/.bash_profile ~/.profile ~/.zshrc 2>/dev/null
tmux show-environment 2>/dev/null | grep ANTHROPIC
grep -n 'ANTHROPIC_API_KEY\|apiKeyHelper' ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>/dev/null2 つ目のコマンドが意図的に cut を通すのは、秘密の値を、共有または録画している可能性のある画面に表示せず、変数名だけを出力するためです。最初のコマンドで状況を判断できます。変数が設定済みと表示された場合、このシェルから次に起動する claude はその鍵を使用します。5 か所すべてで何も表示されなければ、環境変数による認証情報はありません。この場所から起動したセッションは /login の認証情報に移行します。
Claude Code を実行するサービスには systemctl cat your-unit.service | grep -i environment を追加します。unit ファイルは独自の環境変数を設定し、シェルのプロファイルを読み込まないためです。
一方の認証情報から別の認証情報へセッションを切り替える
サブスクリプションに戻すには、次の操作を行います。
unset ANTHROPIC_API_KEY
[ -n "$ANTHROPIC_API_KEY" ] && echo "still set" || echo "clear"
claudeclear を待ちます。その後、新しいセッションで /status を実行し、API key の行が消えていることを確認します。シェルで変数の設定を解除しても、すでに実行中の Claude Code プロセスには影響しません。プロセスは起動時の環境を保持するためです。セッションを再起動してください。
その後、設定に使われたファイルから export を削除します。削除しないと、次回のログインシェルで再び設定されます。tmux 内では、tmux set-environment -u ANTHROPIC_API_KEY により、その時点より後にセッション内で開いたペインの設定を解除できます。すでに開いているペインには、それぞれの設定が残ります。
反対方向に切り替えるには、環境変数に ANTHROPIC_API_KEY を設定するか、/login を実行して Console アカウントを選択します。保存済みのログイン情報を完全に削除するには、/logout を実行します。キーを使わない Console サインインの後に、/logout を実行すると、そのサインインによって保存された認証情報が削除され、失効します。
/status の内容が期待と異なる場合は、claude doctor を実行します。Claude Code が拒否した設定項目を一覧表示するため、構文解析に失敗してまったく適用されなかった設定ファイルを検出できます。
ブラウザーがない環境で認証する
claude setup-token は /login と同じブラウザー認証フローを開始し、1 年間有効な OAuth トークンをターミナルに表示します。
claude setup-tokenトークンはどこにも保存されないため、表示されたらコピーしてください。トークンが必要なマシンで、CLAUDE_CODE_OAUTH_TOKEN として設定します。このトークンはサブスクリプションで認証するため、Pro、Max、Team、Enterprise のいずれかのプランが必要です。また、モデルリクエストの実行にのみ使用できます。Bare mode はこのトークンを読み取らないため、--bare を渡すスクリプトには ANTHROPIC_API_KEY または apiKeyHelper が必要です。
ここでも優先順位が影響します。CLAUDE_CODE_OAUTH_TOKEN がシェルプロファイルに設定されている場合、/login を実行すると現在のセッションが新しいログインに切り替わります。その後、削除するまで新しいセッションでも毎回この変数が読み込まれます。
組織が Amazon Bedrock、Google Cloud、Microsoft Foundry 経由で推論を実行している場合、それらの認証情報が優先順位の最上位になり、ブラウザーによるログインは一切行われません。この設定は別の作業であり、Bedrock または Vertex に対して Claude Code を実行する で説明しています。
VPS (virtual private server) 上で長時間セッションを維持すると、この問題が起きやすくなります。セッションを開始したシェルが数か月前に設定され、その後一度も再起動されていない可能性があるためです。tmux 内で VPS 上の Claude Code を実行する では、この構成におけるセッション側の設定を説明しています。
各認証情報が実際に消費した金額の確認
サブスクリプションのログインでは、/usage にプランの使用量バーと、使用量を消費した内訳が表示されます。Session ブロックのドル金額は、トークン数に公開価格を適用してローカルで計算されます。管理者が管理設定で modelPricing テーブルを設定している場合は、組織の契約料金が適用されます。その場合は、Total cost 行にその旨が表示されます。いずれの場合も、これは請求額ではなく、API ユーザー向けの見積もりとして扱ってください。サブスクライバーはドル金額ではなく、使用量バーを確認してください。
Console credential では、重要な数値は Console に表示されます。支出については usage ページを、メンバーごとの数値については Claude Code dashboard を確認してください。端末に表示される内容は、この請求情報の正式な根拠ではありません。
作業中にプランの使用量バーがまったく動かない場合は、環境変数の credential が優先されている可能性があります。/status で確定できます。例外は、バーがすでに満杯の場合です。サブスクリプションのセッションは、付属の上限を超えて usage credits を使い続けることがあります。この超過分には Anthropic の標準 API 料金が適用され、使用量バーは動きません。この場合を除き、バーが動かないことは、別の credential が有効になっている最も明確な兆候です。Claude Code セッションの支出を追跡するでは、その測定方法をさらに詳しく説明しています。バーが動いた後に止まる場合は、プランの上限に達しています。Claude の使用量制限とリセット期間の仕組みで説明しています。
障害パターンと確認事項
すべて正常に動作するのに、プランの使用量がまったく変わらない。 通常は環境変数の認証情報が有効になっています。/status に API key の行が表示され、上記のシェル確認でもその変数が表示されます。どちらにも表示されず、使用量バーが上限に達している場合、セッションは使用量クレジットに移行しています。このクレジットには通常の API 料金が適用され、支出は claude.ai の Settings、次に Usage で確認できます。
サブスクリプションが有効なのにリクエストが失敗する。 無効または期限切れの Console 組織に属するキーが、ログイン情報より優先されています。unset ANTHROPIC_API_KEY を実行して新しいセッションを開始し、もう一度 /status を確認します。無効な API key が原因と表示される場合は、Claude Code の無効な API key エラーを修正する方法で詳しく説明しています。そこでは、/login をもう一度実行しても解消しない理由も説明しています。
起動時にログインの有効期限が近いという警告が表示される。 最近のバージョンでは、/login の認証情報の有効期限が3日以内になると警告が表示されます。実際に期限が切れると、/status に、保存されている組織とメールアドレスとともに、ログイン行が期限切れの状態で表示されます。更新するには /login を実行します。この警告によってリクエストがブロックされることはありません。そのため、無人セッションが処理を進められなくなるまで無視しやすい点に注意してください。
apiKeyHelper の実行が遅い、または失敗する。 Claude Code はデフォルトで5分ごとにヘルパーを再実行します。この間隔は CLAUDE_CODE_API_KEY_HELPER_TTL_MS で変更できます。実行に10秒を超えると、プロンプトバーに通知が表示されます。エラーまたはタイムアウトの有無にかかわらず、キーを返さないヘルパーが実行されると、3回以内の試行でリクエストが失敗します。
正しい認証情報だが、組織が異なる。 1つのメールアドレスが2つの組織に所属する場合があります。/status には認証先の組織が表示されるため、どの組織に接続されたかを推測せず、その行を確認してください。
FAQ
Claude Code が現在どのアカウントを使用しているか確認するにはどうすればよいですか?
セッション内で /status を実行します。Status タブには、サインインしたアカウントの Login method 行が表示されます。API key が認証情報として使われている場合は、API key 行も表示されます。代わりに Anthropic profile または federation credential を選択している場合は、ログイン行が Profile 行に置き換わります。セッション外では、シェルで ANTHROPIC_API_KEY が設定されているか確認すると、ログインより優先される環境認証情報が存在するかどうかを確認できます。
Claude Pro または Max のサブスクリプションが無視されるのはなぜですか?
環境認証情報がサブスクリプションより優先されているためです。Claude Code は固定された順序で最初に見つかった認証情報を使用します。/login のサブスクリプション認証情報は、クラウドプロバイダー変数、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_API_KEY、apiKeyHelper、CLAUDE_CODE_OAUTH_TOKEN、および ANTHROPIC_PROFILE または federation 変数で選択した Anthropic profile や federation credential より下位です。user_oauth モードでアクティブな profile だけがそれより下位に位置し、サインイン済みの Claude apps gateway セッションは一覧全体より優先されます。unset ANTHROPIC_API_KEY を実行して新しいセッションを開始し、/status で確認します。その後、設定したシェルプロファイル、systemd unit、tmux 環境、またはコンテナ定義から export を削除してください。削除しないと、次回のログインシェルで再び設定されます。
無料の Claude アカウントで Claude Code を使用できますか?
いいえ。Anthropic がログイン用に案内しているアカウント種別は、Pro または Max のサブスクリプション、Claude for Teams または Enterprise の seat、Claude Console アカウント、クラウドプロバイダー、および Cloud gateway です。Cloud gateway は、/login を使用して企業 SSO でサインインした自己ホスト型 Claude apps gateway です。無料の claude.ai アカウントはこれらに含まれないため、保存できるサブスクリプション認証情報はありません。サブスクリプションの有料代替手段は、API credit を持つ Claude Console organisation です。これは token 単位で課金され、同じメールアドレスを使用していても別のアカウントです。
claude.ai アカウントと Console アカウントで残高を共有しますか?
いいえ。両方で同じメールアドレスを使用していても、別アカウントであり、請求も別です。サブスクリプションの使用量はプランの利用枠から差し引かれ、Claude on the web と共有されます。利用枠は rolling five hour window と weekly window でリセットされます。Console の使用量は organisation に対して token 単位で課金され、Console usage page に表示されます。一方に credit を追加しても、もう一方には反映されません。任意で利用できる連携は、plan から Console への一方向だけです。Max または Team plan では、claude.ai から連携した Console organisation に月次 API credits を送れます。ただし、その credits は Claude Code には使用できません。
ヘッドレスサーバーで Claude Code を認証するにはどうすればよいですか?
方法は2つあります。SSH 経由で claude を実行し、自分のマシンでブラウザログインを完了します。c を押して URL をコピーし、そこでサインインします。ブラウザがリダイレクトせずに code を表示した場合は、その code をターミナルに貼り付けます。もう1つの方法は、ブラウザのあるマシンで claude setup-token を実行し、表示された one-year token をコピーして、サーバー上で CLAUDE_CODE_OAUTH_TOKEN として設定することです。この token には Pro、Max、Team、または Enterprise plan が必要です。また、model request だけを実行できます。そのため、--bare を使用するスクリプトには API key または apiKeyHelper が必要です。