Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正 が検索語の場合、修正は通常ひとつの問いから始まります。Claude Code は、ゲートウェイが実際に読み取るヘッダーに認証情報を送っているでしょうか?
Claude Code のゲートウェイルーティングでは、ANTHROPIC_AUTH_TOKEN は Authorization: Bearer ... を送信します。ANTHROPIC_API_KEY は x-api-key: ... を送信します。値自体が有効でも、誤った変数に入ったトークンは、無効なキー、古いログイン、または壊れたゲートウェイのように見えることがあります。
ANTHROPIC_AUTH_TOKEN、ANTHROPIC_BASE_URL、Claude Code の設定ファイル、VS Code 拡張機能、または CI ワークフローを設定した後に Claude Code が失敗する場合は、この手順書を使用してください。
すぐにできる修正
マシン上のすべての設定ファイルを編集する前に、最小限の診断から始めてください。
- 認証情報の変数を 1 つ選びます。
- ゲートウェイのベース URL とその認証情報を、同じシェルでエクスポートします。
$ANTHROPIC_BASE_URL/v1/messagesに対して 1 トークンのcurlリクエストを実行します。- その同じシェルから Claude Code を起動します。
/statusを実行し、Anthropic base URLと期待する認証情報のソースの両方が表示されることを確認します。curlが成功しても Claude Code がまだログインを求める場合は、認証情報を Claude Code が初回セットアップの前に読み取る場所、たとえば~/.claude/settings.json、シェルの export、または管理された設定に移します。
Bearer トークンのゲートウェイの場合:
export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="REPLACE_WITH_GATEWAY_TOKEN"
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "replace-with-a-gateway-supported-claude-model",
"max_tokens": 1,
"messages": [{"role": "user", "content": "."}]
}'x-api-key ゲートウェイの場合:
export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_API_KEY="REPLACE_WITH_GATEWAY_KEY"
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "replace-with-a-gateway-supported-claude-model",
"max_tokens": 1,
"messages": [{"role": "user", "content": "."}]
}'メッセージ ID と content を含む JSON 応答は、URL と認証情報が機能していることを意味します。401 は、ゲートウェイが認証情報を拒否したか、読み取らないヘッダーで受け取ったことを意味します。
Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正 チェックリスト
これを作業用の診断表として使用してください。アクティブな変数、ヘッダー、および設定の優先順位が分かるまで、キーをローテーションしないでください。
| 症状 | 最も可能性の高い原因 | 修正方法 |
|---|---|---|
401 invalid or unrecognized token | 認証情報が失効している、 টাইポがある、または誤ったヘッダーで送信されている | ゲートウェイが bearer 認証を期待している場合は ANTHROPIC_AUTH_TOKEN を使用します。x-api-key を期待している場合は ANTHROPIC_API_KEY を使用します。ヘッダーが正しいことを確認してから再生成してください。 |
| Startup warning says two credential sources are active | ゲートウェイの認証情報と、保存済みの Claude ログインまたは API キーの両方が有効になっている | どちらか一方の経路を選びます。保存済みログインを使うにはゲートウェイ変数を解除し、ゲートウェイ認証情報のみを使うには /logout を実行します。 |
/status has no Anthropic base URL line | ANTHROPIC_BASE_URL が Claude Code プロセスまで届いていない | 同じシェルから claude を起動する、変数を ~/.claude/settings.json に移す、または実際に使用している設定面を構成します。 |
| Curl works, Claude Code asks you to log in | CLI には到達可能な base URL はあるが、初回セットアップ前に利用できる認証情報がない | ANTHROPIC_AUTH_TOKEN をシェルの export、ユーザー設定、または Claude Code がウィザード前に読む管理対象設定に入れます。 |
ANTHROPIC_API_KEY is set but ignored | 対話型の Claude Code ではカスタム API キーに一度だけ承認が必要、または以前のキーが拒否された | /config で Use custom API key を有効にします。 |
| Empty or malformed response with HTTP 200 | ゲートウェイまたはプロキシが HTML、ログインページ、または別の非 API 応答を返した | curl リクエストを実行し、Claude API の JSON ではない応答を返しているルートを修正します。 |
| DNS, firewall, or connection refused errors | ANTHROPIC_BASE_URL で到達可能な応答がない | ゲートウェイホストへの DNS、VPN、プロキシ、およびファイアウォールのアクセスを確認します。 |
400 names context_management, Extra inputs are not permitted, or tool schema fields | ゲートウェイが Anthropic 形式の Claude Code リクエストを、Claude Code が送信するフィールドを拒否する上流に転送している | フォワード互換フィールドを正しく処理する、プロバイダー固有のルートを使用する、または適切な場合は一時的に CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定します。 |
400 names thinking or adaptive | 上流のモデルビルドが adaptive reasoning を受け付けない | 上流をアップグレードするか、対応する Claude 4.6 のケースでは、文書化された CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 の回避策を使用します。 |
/fast fails while inference works | Fast mode のチェックが、ゲートウェイ URL に従うのではなく Anthropic に直接送られることがある | これをメッセージルーティングとは別の問題として扱います。直接チェックを allowlist するか、適用可能な場合は文書化された skip 変数を使用します。 |
| Certificate errors while curl works | Claude Code のランタイムが、curl とは異なる CA バンドルを信頼している | NODE_EXTRA_CA_CERTS を社内 CA バンドルのパスに設定します。 |
ANTHROPIC_AUTH_TOKEN または ANTHROPIC_API_KEY を選ぶ
ANTHROPIC_AUTH_TOKEN は bearer トークン用です。Claude Code はこれを次のように送信します:
Authorization: Bearer <token>ANTHROPIC_API_KEY は API キー用です。Claude Code はこれを次のように送信します:
x-api-key: <key>ゲートウェイチームが「token」または「Authorization header」しか言わない場合は、まず ANTHROPIC_AUTH_TOKEN から試してください。「API key」または「x-api-key」と言う場合は、ANTHROPIC_API_KEY を使ってください。推測して 401 を受け取った場合は、キーをローテーションする前に変数を切り替えてください。
トラブルシューティング中は両方を設定しないでください。そうしないと、Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正 が認証の問題から認証優先順位の問題へと変わってしまいます。
Claude Code が実際に読む場所に変数を置く
シェルの export は、解除しやすいため最初のテストに適しています:
export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="REPLACE_WITH_GATEWAY_TOKEN"
claudeこれらは、そのターミナルセッションと、そこから起動されたプログラムにのみ適用されます。VS Code、デスクトップアプリ、または別の場所から起動したバックグラウンドエージェントを開いた場合、その export は見えないことがあります。
永続的なユーザーレベルの CLI 設定には、~/.claude/settings.json を使用します:
{
"env": {
"ANTHROPIC_BASE_URL": "https://llm-gateway.example.com",
"ANTHROPIC_AUTH_TOKEN": "REPLACE_WITH_GATEWAY_TOKEN"
}
}1 つのプロジェクトだけで使う場合は、.claude/settings.local.json を使用し、クレデンシャルを追加する前に必ず gitignore に含めてください。.claude/settings.json はリポジトリと共有するためのものなので、そこにクレデンシャルを置かないでください。
シェルの export と設定ファイルの env ブロックが同じ変数を設定している場合、Claude Code は設定ファイルの値を使用します。だからこそ、/status は echo $ANTHROPIC_AUTH_TOKEN より信頼できる情報源なのです。
VS Code 拡張機能を修正する
Claude Code の VS Code 拡張機能には独自の起動チェックがあります。VS Code のユーザー設定で claudeCode.environmentVariables の下にゲートウェイ変数を設定してください:
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://llm-gateway.example.com" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "REPLACE_WITH_GATEWAY_TOKEN" }
]
}VS Code のコマンド Preferences: Open User Settings (JSON) を使用します。その後、拡張機能セッションを再起動して /status を実行してください。拡張機能がまだログインを促す場合は、独自のログインチェックでクレデンシャルを認識できていません。
GitHub Actions を修正する
Claude Code GitHub Actions は、ワークフローの env ブロックから ANTHROPIC_BASE_URL を読み取ります。x-api-key ゲートウェイの場合は、アクション入力としてゲートウェイキーを渡します:
env:
ANTHROPIC_BASE_URL: https://llm-gateway.example.com
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}bearer トークンのゲートウェイでは、アクションの起動チェックを満たすために anthropic_api_key がまだ必要です。一方、ANTHROPIC_AUTH_TOKEN は Claude Code が Authorization: Bearer として送信する値です:
env:
ANTHROPIC_BASE_URL: https://llm-gateway.example.com
ANTHROPIC_AUTH_TOKEN: ${{ secrets.GATEWAY_API_KEY }}
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}これらの値は GitHub Secrets に保持してください。ゲートウェイの認証情報をワークフローのログ、issue のコメント、またはコミット済みファイルに貼り付けないでください。
/status を真偽確認として使う
設定を変更した後は、次を実行します:
/statusAnthropic 形式のゲートウェイでは、Status タブに次の内容が表示されるはずです:
Anthropic base URL: https://llm-gateway.example.com
Auth token: ANTHROPIC_AUTH_TOKENまたは:
Anthropic base URL: https://llm-gateway.example.com
API key: ANTHROPIC_API_KEYbase URL の行が表示されない場合、ANTHROPIC_BASE_URL がセッションに届いていません。認証情報のソースが保存済みログインである場合、Claude Code はゲートウェイの認証情報を使用していません。両方とも正しく見えるのにメッセージがまだ失敗する場合、問題はゲートウェイルーティング、上流互換性、プロキシの挙動、または証明書の信頼にある可能性が高くなります。
Claude Code のゲートウェイルーティングに関する Flatkey の注意事項
Flatkey は 2 つの異なる Claude Code ワークフローで役立ち、その違いが重要です。
プロジェクトまたはエージェントスキルから OpenAI 互換のモデル呼び出しを行う場合、Flatkey の base URL は次のとおりです:
https://router.flatkey.ai/v1Claude Code 自身のゲートウェイ経路では、Anthropic Messages 形式のゲートウェイ設定に従い、ゲートウェイ側の Claude Code 指示で明示的に指示されていない限り、ANTHROPIC_BASE_URL に /v1 を追加しないでください。一般的なプロバイダーパターンは次のとおりです:
export ANTHROPIC_BASE_URL="https://router.flatkey.ai"
export ANTHROPIC_API_KEY="$FLATKEY_API_KEY"その後、/status を実行し、短いプロンプトを送信して、ゲートウェイの台帳またはログを確認します。Claude Code SKILL.md setup はこの経路とは分けてください。スキルは、リポジトリから Flatkey 対応のモデルやツールを Claude Code が呼び出す方法を教えるものであり、ゲートウェイルーティングは Claude Code が自身の Claude 系トラフィックをどこへ送るかを制御します。
プロバイダー間でエージェントトラフィックを標準化している場合は、この記事を Claude API proxy vs multi-model router と Flatkey API quickstart ガイドと組み合わせてください。
トークンが本当の問題ではない場合のゲートウェイ運用者チェック
一部の Claude Code ANTHROPIC_AUTH_TOKEN Errors: Complete Configuration Fixes の検索は、最初はローカル設定の問題として始まり、最終的にゲートウェイに行き着きます。1 トークンの curl が認証に成功し、/status が正しく見える場合は、次のゲートウェイ側の条件を確認してください:
| ゲートウェイ確認 | 重要な理由 |
|---|---|
/v1/messages で Anthropic Messages 形式を提供する | ANTHROPIC_BASE_URL により、Claude Code はゲートウェイを Anthropic 形式のエンドポイントとして扱います。 |
anthropic-version と anthropic-beta をそのまま転送する | Claude Code の機能はリリースごとに変わるため、静的な許可リストでは後続のリクエストが壊れることがあります。 |
| ストリーミングと keep-alive の挙動を維持する | ストリームのバイト列をバッファリングしたり削除したりすると、Claude Code が停止することがあります。 |
| エラーボディを変更せずに転送する | Claude Code は一部の回復経路で上流のエラー文言を使用します。 |
| HTTP 200 で HTML を返さない | Claude Code はブラウザのログインページではなく、Claude API の JSON または event-stream のレスポンスを期待します。 |
リクエスト本文の WAF ルールから /v1/messages を除外する | Claude Code のプロンプトには、XML 風のタグや汎用の本文フィルタに引っかかるソースコードが含まれることがあります。 |
| 有用な retry ヘッダーを返す | retry-after と x-should-retry は再試行動作に影響します。 |
ゲートウェイの前段にあるプロバイダーが Anthropic Messages の完全なリクエスト形式を受け付けない場合は、ANTHROPIC_BASE_URL の代わりにプロバイダー固有の変数を使用するか、ゲートウェイ内でスキーマを変換してください。フィールドをむやみに削除しないでください。それは 1 つの見えるエラーを、後で発生する機能障害に置き換えるだけです。
コピー可能なデバッグ記録
問題を同僚やゲートウェイ運用担当者に渡す際は、次の記録を使用してください:
claude_code_auth_debug:
date_checked: 2026-09-22
surface: cli # cli | vscode | github_actions | agent_sdk | desktop
claude_code_version: ""
expected_gateway_base_url: "https://llm-gateway.example.com"
variable_used: "ANTHROPIC_AUTH_TOKEN"
expected_header: "Authorization: Bearer"
status_tab_base_url_seen: false
status_tab_credential_source: ""
curl_status_code: ""
curl_response_shape: "json_message | 401 | html_200 | dns_error | tls_error | other"
settings_files_checked:
- "~/.claude/settings.json"
- ".claude/settings.local.json"
- ".claude/settings.json"
shell_started_claude: false
saved_login_present: unknown
gateway_logs_received_request: unknown
suspected_fix: ""この記録によって、Claude Code がどこから設定を読み込んだか、どのヘッダーを送信したか、ゲートウェイが何を返したか、という 3 つを切り分けて調査できます。
よくある質問
ANTHROPIC_AUTH_TOKEN と ANTHROPIC_API_KEY のどちらを使うべきですか?
ゲートウェイが bearer トークンまたは Authorization ヘッダーを期待する場合は ANTHROPIC_AUTH_TOKEN を使用します。ゲートウェイが x-api-key を期待する場合は ANTHROPIC_API_KEY を使用します。わからない場合は、まず ANTHROPIC_AUTH_TOKEN で試し、curl リクエストで確認し、401 を受け取ったら切り替えてください。
なぜ /status に自分の base URL が表示されないのですか?
ANTHROPIC_BASE_URL が Claude Code のプロセスに届いていません。同じシェルから claude を起動するか、値を正しい設定ファイルへ移すか、VS Code の設定や GitHub Actions の env など、使用している面に応じて設定してください。
curl は動くのに、なぜ Claude Code はまだログインを求めるのですか?
ベース URL には到達できますが、Claude Code は必要な時点で利用可能な資格情報を持っていません。ANTHROPIC_AUTH_TOKEN か正しい資格情報変数を、シェルの export、ユーザー設定、または Claude Code が初回セットアップ前に読み込む管理設定に入れてください。
.claude/settings.json にトークンを入れてもよいですか?
.claude/settings.json は共有プロジェクトファイルなので、そこにシークレットを入れないでください。代わりに ~/.claude/settings.json、.claude/settings.local.json、管理設定、シークレットマネージャー、または CI シークレットを使用してください。
ANTHROPIC_AUTH_TOKEN によって Claude Code は Claude 以外のモデルにルーティングされますか?
いいえ。これは、Claude Code が設定された Anthropic 形式のゲートウェイに対して認証する方法を変更するだけです。ゲートウェイは独自の実装に従ってリクエストをルーティングまたはブリッジする場合がありますが、Claude Code は引き続き ANTHROPIC_BASE_URL のパスで Claude API の形を期待しています。
最も安全な最終確認は何ですか?
単一トークンの curl リクエストを実行し、設定済みの環境から Claude Code を起動して、/status を実行し、短いプロンプトを送信して、ゲートウェイの台帳またはログにリクエストが表示されることを確認します。この 4 段階のチェックが、Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正 の裏にある持続的な修正です。
確認したソース
- Anthropic Claude Code docs: Connect Claude Code to an LLM gateway, accessed 2026-09-22.
- Anthropic Claude Code docs: Settings files and precedence, accessed 2026-09-22.
- Anthropic Claude Code docs: Claude Code gateway compatibility guide, accessed 2026-09-22.
- Claude Help Center: Manage API key environment variables in Claude Code, accessed 2026-09-22.
- Flatkey public
SKILL.md, accessed 2026-09-22. - Flatkey knowledge base: Product Overview, Marketing Strategy, Brand Voice.



