Tool Integrations22 septembre 2026Flatkey Team

Erreurs ANTHROPIC_AUTH_TOKEN dans Claude Code : corrections de configuration complètes

Un guide de dépannage complet pour Claude Code : ANTHROPIC_AUTH_TOKEN, ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL, /status, VS Code, GitHub Actions et les erreurs 401 de passerelle.

Erreurs ANTHROPIC_AUTH_TOKEN dans Claude Code : corrections de configuration complètes

Lorsque Claude Code ANTHROPIC_AUTH_TOKEN Errors: Complete Configuration Fixes est la requête, la correction commence généralement par une question : Claude Code envoie-t-il bien l’identifiant dans l’en-tête que votre passerelle lit réellement ?

Pour le routage via passerelle dans Claude Code, ANTHROPIC_AUTH_TOKEN envoie Authorization: Bearer .... ANTHROPIC_API_KEY envoie x-api-key: .... Un jeton dans la mauvaise variable peut ressembler à une mauvaise clé, à une connexion obsolète ou à une passerelle défaillante, même lorsque la valeur elle-même est valide.

Utilisez ce guide opérationnel lorsque Claude Code échoue après avoir défini ANTHROPIC_AUTH_TOKEN, ANTHROPIC_BASE_URL, un fichier de paramètres Claude Code, l’extension VS Code ou un workflow CI.

La correction rapide

Commencez par le diagnostic le plus simple avant de modifier tous les fichiers de configuration de votre machine.

  1. Choisissez une seule variable d’identifiant.
  2. Exportez l’URL de base de la passerelle et cet identifiant dans le même shell.
  3. Exécutez une requête curl d’un seul jeton vers $ANTHROPIC_BASE_URL/v1/messages.
  4. Démarrez Claude Code depuis ce même shell.
  5. Exécutez /status et vérifiez que Anthropic base URL et la source attendue de l’identifiant apparaissent.
  6. Si curl réussit mais que Claude Code vous demande toujours de vous connecter, déplacez l’identifiant vers un emplacement que Claude Code lit avant la configuration initiale, comme ~/.claude/settings.json, une exportation de shell ou des paramètres gérés.

Pour une passerelle à jeton 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": "."}]
  }'

Pour une passerelle 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": "."}]
  }'

Une réponse JSON avec un identifiant de message et content signifie que l’URL et l’identifiant fonctionnent. Un 401 signifie que la passerelle a rejeté l’identifiant ou l’a reçu dans un en-tête qu’elle ne lit pas.

Liste de vérification pour les erreurs ANTHROPIC_AUTH_TOKEN dans Claude Code

Utilisez ce tableau comme diagnostic de travail. Ne faites pas tourner les clés tant que la variable active, l’en-tête et la priorité des paramètres ne sont pas connus.

SymptômeCause la plus probableCorrectif
401 jeton invalide ou non reconnuLes identifiants ont été révoqués, mal saisis, ou envoyés dans le mauvais en-têteSi la passerelle attend une authentification bearer, utilisez ANTHROPIC_AUTH_TOKEN. Si elle attend x-api-key, utilisez ANTHROPIC_API_KEY. Régénérez uniquement après avoir vérifié que l’en-tête est correct.
Le message d’avertissement au démarrage indique que deux sources d’identifiants sont activesUn identifiant de passerelle et une connexion Claude enregistrée ou une clé API sont tous deux actifsChoisissez une seule méthode. Désactivez la variable de passerelle pour utiliser la connexion enregistrée, ou exécutez /logout et ne conservez que l’identifiant de passerelle.
/status n’affiche aucune ligne Anthropic base URLANTHROPIC_BASE_URL n’est pas parvenu au processus Claude CodeLancez claude depuis le même shell, déplacez la variable vers ~/.claude/settings.json, ou configurez la surface que vous utilisez réellement.
Curl fonctionne, Claude Code vous demande de vous connecterLe CLI a une base URL joignable, mais aucun identifiant n’est disponible avant la configuration initialePlacez ANTHROPIC_AUTH_TOKEN dans une exportation de shell, dans les paramètres utilisateur, ou dans les paramètres gérés lus par Claude Code avant l’assistant.
ANTHROPIC_API_KEY est défini mais ignoréClaude Code interactif nécessite une approbation unique pour une clé API personnalisée, ou une clé précédente a été refuséeActivez-la dans /config avec Use custom API key.
Réponse vide ou mal formée avec HTTP 200La passerelle ou le proxy a renvoyé du HTML, une page de connexion, ou une autre réponse non APIExécutez la requête curl et corrigez la route qui répond avec un JSON non Claude API.
Erreurs DNS, pare-feu ou connexion refuséeAucune cible joignable ne répond à ANTHROPIC_BASE_URLVérifiez l’accès DNS, VPN, proxy et pare-feu à l’hôte de la passerelle.
400 mentionne context_management, Extra inputs are not permitted, ou des champs de schéma d’outilLa passerelle transmet des requêtes Claude Code au format Anthropic vers un service amont qui rejette les champs envoyés par Claude CodeTransmettez correctement les champs compatibles, utilisez la route spécifique au fournisseur, ou définissez temporairement CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 lorsque c’est approprié.
400 mentionne thinking ou adaptiveLa version amont du modèle n’accepte pas le raisonnement adaptatifMettez à niveau le service amont ou utilisez le contournement documenté CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 pour les cas Claude 4.6 pris en charge.
/fast échoue alors que l’inférence fonctionneLes vérifications du mode rapide peuvent aller directement à Anthropic au lieu de suivre l’URL de la passerelleConsidérez cela comme distinct du routage des messages ; autorisez la vérification directe ou utilisez la variable de contournement documentée lorsque cela s’applique.
Erreurs de certificat alors que curl fonctionneL’environnement d’exécution de Claude Code fait confiance à un bundle CA différent de curlDéfinissez NODE_EXTRA_CA_CERTS sur le chemin du bundle CA de l’entreprise.

Choisir ANTHROPIC_AUTH_TOKEN ou ANTHROPIC_API_KEY

ANTHROPIC_AUTH_TOKEN est destiné à un jeton bearer. Claude Code l’envoie comme suit :

Authorization: Bearer <token>

ANTHROPIC_API_KEY est destiné à une clé API. Claude Code l’envoie comme :

x-api-key: <key>

Si votre équipe passerelle parle seulement de « token » ou d’« en-tête Authorization », commencez avec ANTHROPIC_AUTH_TOKEN. Si elle parle de « clé API » ou de « x-api-key », utilisez ANTHROPIC_API_KEY. Si vous avez deviné et reçu 401, changez de variable avant de faire pivoter la clé.

Ne définissez pas les deux pendant le dépannage. C’est ainsi que Erreurs ANTHROPIC_AUTH_TOKEN dans Claude Code : corrections de configuration complètes passe d’un problème d’authentification à un problème de priorité d’authentification.

Placez les variables là où Claude Code les lit réellement

Les exportations de shell sont idéales pour le premier test, car elles sont faciles à annuler :

export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="REPLACE_WITH_GATEWAY_TOKEN"
claude

Elles ne s’appliquent qu’à cette session de terminal et aux programmes lancés depuis celle-ci. Si vous ouvrez VS Code, une application de bureau ou un agent d’arrière-plan depuis un autre emplacement, l’exportation peut ne pas être visible.

Pour une configuration CLI persistante au niveau de l’utilisateur, utilisez ~/.claude/settings.json :

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://llm-gateway.example.com",
    "ANTHROPIC_AUTH_TOKEN": "REPLACE_WITH_GATEWAY_TOKEN"
  }
}

Pour un seul projet, utilisez .claude/settings.local.json et assurez-vous qu’il est ignoré par git avant d’ajouter un identifiant. Ne mettez pas d’identifiant dans .claude/settings.json, car ce fichier est censé être partagé avec le dépôt.

Lorsqu’une exportation de shell et un bloc env dans un fichier de configuration définissent la même variable, Claude Code utilise la valeur du fichier de configuration. C’est pourquoi /status est une meilleure source de vérité que echo $ANTHROPIC_AUTH_TOKEN.

Corrigez l’extension VS Code

L’extension Claude Code VS Code a ses propres vérifications de lancement. Configurez les variables passerelle dans les paramètres utilisateur de VS Code sous claudeCode.environmentVariables :

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://llm-gateway.example.com" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "REPLACE_WITH_GATEWAY_TOKEN" }
  ]
}

Utilisez la commande VS Code Preferences: Open User Settings (JSON). Puis redémarrez la session de l’extension et exécutez /status. Si l’extension demande encore une connexion, c’est qu’elle ne voit pas l’identifiant lors de sa propre vérification de connexion.

Corrigez GitHub Actions

Claude Code GitHub Actions lit ANTHROPIC_BASE_URL depuis le bloc env du workflow. Pour une passerelle x-api-key, transmettez la clé passerelle en tant qu’entrée de l’action :

env:
  ANTHROPIC_BASE_URL: https://llm-gateway.example.com

steps:
  - uses: anthropics/claude-code-action@v1
    with:
      anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}

Pour une passerelle à jeton Bearer, l’action a toujours besoin de anthropic_api_key pour satisfaire sa vérification de lancement, tandis que ANTHROPIC_AUTH_TOKEN est la valeur que Claude Code envoie comme 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 }}

Conservez ces valeurs dans les Secrets GitHub. Ne collez pas les identifiants du gateway dans les journaux de workflow, les commentaires de tickets ou les fichiers validés dans le dépôt.

Utilisez /status comme vérification de vérité

Après chaque modification de configuration, exécutez :

/status

Pour un gateway au format Anthropic, l’onglet Status devrait afficher :

Anthropic base URL: https://llm-gateway.example.com
Auth token: ANTHROPIC_AUTH_TOKEN

ou :

Anthropic base URL: https://llm-gateway.example.com
API key: ANTHROPIC_API_KEY

Si la ligne de base URL est absente, ANTHROPIC_BASE_URL n’a pas atteint la session. Si la source des identifiants est une connexion enregistrée, Claude Code n’utilise pas les identifiants du gateway. Si tout semble correct et que le message échoue toujours, le problème se situe probablement désormais dans le routage du gateway, la compatibilité avec l’amont, le comportement du proxy ou la confiance dans le certificat.

Note sur Flatkey pour le routage du gateway Claude Code

Flatkey est utile dans deux workflows Claude Code différents, et cette distinction est importante.

Pour les appels de modèles compatibles OpenAI depuis un projet ou une compétence d’agent, l’URL de base de Flatkey est :

https://router.flatkey.ai/v1

Pour le propre chemin de gateway de Claude Code, suivez la configuration du gateway au format Anthropic Messages et n’ajoutez pas /v1 à ANTHROPIC_BASE_URL sauf si les instructions Claude Code du gateway l’indiquent explicitement. Un schéma fournisseur typique est :

export ANTHROPIC_BASE_URL="https://router.flatkey.ai"
export ANTHROPIC_API_KEY="$FLATKEY_API_KEY"

Ensuite, exécutez /status, envoyez une courte invite et vérifiez le registre ou les journaux du gateway. Gardez la configuration Claude Code SKILL.md setup séparée de ce chemin : une compétence apprend à Claude Code comment appeler les modèles et outils pris en charge par Flatkey depuis votre dépôt ; le routage du gateway contrôle où Claude Code envoie son propre trafic de la famille Claude.

Si vous standardisez le trafic des agents entre plusieurs fournisseurs, associez cet article aux guides Claude API proxy vs multi-model router et Flatkey API quickstart.

Vérifications de l’opérateur du gateway lorsque le token n’est pas le vrai problème

Certaines recherches Claude Code ANTHROPIC_AUTH_TOKEN Errors: Complete Configuration Fixes commencent comme un problème de configuration locale et se terminent au niveau du gateway. Si le curl avec un seul token s’authentifie et que /status semble correct, inspectez ces conditions côté gateway :

Vérification de la passerellePourquoi c’est important
Servir le format Anthropic Messages à /v1/messagesANTHROPIC_BASE_URL fait traiter à Claude Code la passerelle comme un endpoint au format Anthropic.
Transmettre anthropic-version et anthropic-beta sans modificationLes capacités de Claude Code changent selon les versions ; des listes d’autorisation statiques peuvent casser des requêtes ultérieures.
Préserver le comportement de streaming et de maintien de connexionLa mise en tampon ou la suppression des octets du flux peut faire bloquer Claude Code.
Transmettre les corps d’erreur sans modificationClaude Code utilise le libellé des erreurs en amont pour certains parcours de récupération.
Éviter de renvoyer du HTML avec HTTP 200Claude Code attend des réponses JSON de l’API Claude ou des réponses event-stream, pas une page de connexion de navigateur.
Exempter /v1/messages des règles WAF sur le corps de la requêteLes prompts de Claude Code peuvent contenir des balises de type XML et du code source qui déclenchent des filtres génériques sur le corps.
Renvoyer des en-têtes de tentative utilesretry-after et x-should-retry influencent le comportement de nouvelle tentative.

Si votre passerelle sert de frontal à un fournisseur qui n’accepte pas la forme complète des requêtes Anthropic Messages, utilisez les variables spécifiques au fournisseur à la place de ANTHROPIC_BASE_URL, ou faites le pont du schéma à l’intérieur de la passerelle. Ne supprimez pas les champs à l’aveugle ; vous échangez alors une erreur visible contre un échec de capacité plus tardif.

Enregistrement de débogage copiable

Utilisez cet enregistrement lorsque vous transmettez le problème à un collègue ou à l’opérateur de la passerelle :

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: ""

Cet enregistrement oblige l’enquête à séparer trois éléments : l’endroit où Claude Code a lu la configuration, l’en-tête qu’il a envoyé et ce que la passerelle a renvoyé.

Foire aux questions

Dois-je utiliser ANTHROPIC_AUTH_TOKEN ou ANTHROPIC_API_KEY ?

Utilisez ANTHROPIC_AUTH_TOKEN lorsque la passerelle attend un jeton bearer ou un en-tête Authorization. Utilisez ANTHROPIC_API_KEY lorsque la passerelle attend x-api-key. Si vous ne savez pas, commencez par ANTHROPIC_AUTH_TOKEN, vérifiez avec la requête curl, puis changez si vous recevez 401.

Pourquoi /status n’affiche-t-il pas mon URL de base ?

ANTHROPIC_BASE_URL n’est pas parvenu au processus Claude Code. Démarrez claude depuis le même shell, déplacez la valeur dans le bon fichier de paramètres, ou configurez la surface que vous utilisez, comme les paramètres VS Code ou l’environnement env de GitHub Actions.

Pourquoi curl fonctionne-t-il mais Claude Code me demande toujours de me connecter ?

L’URL de base est accessible, mais Claude Code ne dispose pas d’un identifiant au moment où il en a besoin. Placez ANTHROPIC_AUTH_TOKEN ou la variable d’identification correcte dans une exportation de shell, les paramètres utilisateur ou les paramètres gérés que Claude Code lit avant la configuration initiale.

Puis-je mettre le jeton dans .claude/settings.json ?

Ne placez pas de secrets dans .claude/settings.json, car il s’agit d’un fichier de projet partagé. Utilisez ~/.claude/settings.json, .claude/settings.local.json, des paramètres gérés, un gestionnaire de secrets ou des secrets CI.

ANTHROPIC_AUTH_TOKEN oriente-t-il Claude Code vers des modèles non-Claude ?

Non. Cela ne modifie que la manière dont Claude Code s’authentifie auprès de la passerelle au format Anthropic configurée. La passerelle peut acheminer ou relayer les requêtes selon sa propre implémentation, mais Claude Code attend toujours la forme de l’API Claude sur le chemin ANTHROPIC_BASE_URL.

Quelle est la vérification finale la plus sûre ?

Exécutez la requête curl à un seul jeton, démarrez Claude Code depuis la surface configurée, exécutez /status, envoyez une courte invite et vérifiez que le journal ou les logs de la passerelle affichent la requête. Cette vérification en quatre étapes constitue la correction durable derrière Erreurs ANTHROPIC_AUTH_TOKEN dans Claude Code : corrections de configuration complètes.

Sources vérifiées

  • Documentation Anthropic Claude Code : connecter Claude Code à une passerelle LLM, consultée le 2026-09-22.
  • Documentation Anthropic Claude Code : fichiers de paramètres et priorité, consultée le 2026-09-22.
  • Documentation Anthropic Claude Code : guide de compatibilité de la passerelle Claude Code, consultée le 2026-09-22.
  • Centre d’aide Claude : gérer les variables d’environnement de clé API dans Claude Code, consulté le 2026-09-22.
  • SKILL.md public de Flatkey, consulté le 2026-09-22.
  • Base de connaissances Flatkey : aperçu du produit, stratégie marketing, voix de marque.