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.
- Choisissez une seule variable d’identifiant.
- Exportez l’URL de base de la passerelle et cet identifiant dans le même shell.
- Exécutez une requête
curld’un seul jeton vers$ANTHROPIC_BASE_URL/v1/messages. - Démarrez Claude Code depuis ce même shell.
- Exécutez
/statuset vérifiez queAnthropic base URLet la source attendue de l’identifiant apparaissent. - Si
curlré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ôme | Cause la plus probable | Correctif |
|---|---|---|
401 jeton invalide ou non reconnu | Les identifiants ont été révoqués, mal saisis, ou envoyés dans le mauvais en-tête | Si 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 actives | Un identifiant de passerelle et une connexion Claude enregistrée ou une clé API sont tous deux actifs | Choisissez 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 URL | ANTHROPIC_BASE_URL n’est pas parvenu au processus Claude Code | Lancez 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 connecter | Le CLI a une base URL joignable, mais aucun identifiant n’est disponible avant la configuration initiale | Placez 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ée | Activez-la dans /config avec Use custom API key. |
| Réponse vide ou mal formée avec HTTP 200 | La passerelle ou le proxy a renvoyé du HTML, une page de connexion, ou une autre réponse non API | Exé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ée | Aucune cible joignable ne répond à ANTHROPIC_BASE_URL | Vé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’outil | La passerelle transmet des requêtes Claude Code au format Anthropic vers un service amont qui rejette les champs envoyés par Claude Code | Transmettez 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 adaptive | La version amont du modèle n’accepte pas le raisonnement adaptatif | Mettez à 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 fonctionne | Les vérifications du mode rapide peuvent aller directement à Anthropic au lieu de suivre l’URL de la passerelle | Considé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 fonctionne | L’environnement d’exécution de Claude Code fait confiance à un bundle CA différent de curl | Dé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 passerelle | Pourquoi c’est important |
|---|---|
Servir le format Anthropic Messages à /v1/messages | ANTHROPIC_BASE_URL fait traiter à Claude Code la passerelle comme un endpoint au format Anthropic. |
Transmettre anthropic-version et anthropic-beta sans modification | Les 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 connexion | La mise en tampon ou la suppression des octets du flux peut faire bloquer Claude Code. |
| Transmettre les corps d’erreur sans modification | Claude Code utilise le libellé des erreurs en amont pour certains parcours de récupération. |
| Éviter de renvoyer du HTML avec HTTP 200 | Claude 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ête | Les 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 utiles | retry-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.mdpublic de Flatkey, consulté le 2026-09-22.- Base de connaissances Flatkey : aperçu du produit, stratégie marketing, voix de marque.



