DépannageGuide
Erreur API 401 ou 404 : mauvaise clé, URL de base ou identifiant de modèle
Lisez le code de statut, trouvez laquelle des trois choses est erronée (clé, URL de base, identifiant de modèle) et confirmez la correction avec une requête curl.

Sur cette page
Votre requête a échoué avec un code de statut et vous ne savez pas par quoi commencer. Réponse courte : 401 pointe généralement vers la clé, 404 signifie généralement que vous frappez au mauvais endroit — soit l'adresse (URL de base et chemin), soit l'identifiant du modèle. Trois choses à vérifier, dans cet ordre, et une commande curl qui prouve la correction.
La page des codes d'erreur d'OpenAI (consultée le 26 octobre 2026) liste deux messages 401 : « Invalid Authentication » et « Incorrect API key provided ». La correction qu'elle donne est la même pour les deux : vérifiez la clé ou générez-en une nouvelle. La page ne documente aucun 404 pour l'API elle-même, donc pour le 404 la règle ci-dessous vient du fonctionnement des points de terminaison compatibles OpenAI, pas de cette page.
Le moyen rapide de les distinguer#
Faites défiler le tableau vers la droite →
| Statut | Ce que dit le serveur | À regarder en premier |
|---|---|---|
| 401 | généralement : je n'accepte pas cette clé | la clé, et à quel fournisseur elle appartient |
| 404 sur tous les modèles | généralement : il n'y a rien à cette adresse | l'URL de base et /v1 |
| 404 sur un seul modèle | généralement : l'adresse est bonne, cet identifiant de modèle est inconnu | l'identifiant du modèle |
Le libellé du message dépend du serveur et de votre outil (Cline, Aider, OpenCode et Continue enveloppent chacun les erreurs à leur manière), donc partez du numéro, puis confirmez avec la vérification curl ci-dessous.
401 : la clé ne correspond pas au point de terminaison#
L'histoire classique : vous avez déplacé un outil vers un nouveau fournisseur, changé l'URL de base, et laissé la clé de l'ancien fournisseur dans la configuration. L'adresse est nouvelle, la clé est l'ancienne, et le serveur répond 401. Rien n'est cassé ; la clé appartient simplement à une autre maison.
Ce qu'il faut vérifier :
- Quel fournisseur a émis la clé ? Ce doit être celui dont vous appelez l'adresse. Une clé pour un service n'est pas valide sur un autre.
- Caractères parasites. Un espace ou un saut de ligne collé avec la clé, ou des guillemets qui se sont retrouvés dans la valeur.
- Où l'outil la lit. Une variable d'environnement définie dans un terminal et pas dans celui depuis lequel votre éditeur a démarré est une cause fréquente. Si l'outil a à la fois un fichier de configuration et une variable d'environnement, découvrez laquelle gagne.
- Une clé révoquée ou supprimée. Une clé que vous avez supprimée ou révoquée cesse de fonctionner — créez-en une nouvelle et mettez-la dans la configuration.
Si vous n'êtes pas sûr du fonctionnement des clés ou de où les conserver, ce qu'est une clé API et comment la stocker en toute sécurité l'explique en termes simples.
404 sur tous les modèles : l'adresse est fausse#
L'URL de base pour CheapTokens est https:/. Les outils et SDK ajoutent eux-mêmes le chemin du point de terminaison, donc les erreurs habituelles concernent /v1 :
/v1manquant : l'outil finit par appelerhttps:/./ api. cheaptokens. dev/ chat/ completions /v1en double : vous avez collé le chemin complet dans un champ qui l'ajoute déjà, et obtenezhttps:/./ api. cheaptokens. dev/ v1/ v1/ chat/ completions - Mauvais type : les outils de style OpenAI et le SDK OpenAI prennent l'adresse avec
/v1. Le SDK Anthropic et Claude Code prennent l'adresse sans/v1:https:/./ api. cheaptokens. dev
Si vous vous êtes déjà demandé ce qu'est exactement une URL de base et quelle partie l'outil ajoute, cette explication vous guide. Pour le côté Anthropic, voir le SDK Python Anthropic avec CheapTokens.
404 sur un modèle : l'identifiant du modèle#
Celui-ci piège ceux qui copient un nom depuis un tableau de prix ou depuis un autre fournisseur. Un tableau de prix peut indiquer DeepSeek- ; l'API veut l'identifiant complet de la passerelle, avec le préfixe du développeur et la version :
Faites défiler le tableau vers la droite →
| Où vous l'avez vu | Ce dont l'API a besoin |
|---|---|
| DeepSeek-V4-Flash | deepseek- |
| GLM-5.3-Flash | zai- |
| MiniMax-M2.7 | MiniMaxAI/ |
Les identifiants courts des étiquettes de prix ne sont pas acceptés par l'API, et l'orthographe compte : les majuscules, la barre oblique, le suffixe -0731. Copiez l'identifiant depuis la documentation CheapTokens plutôt que de le taper de mémoire — différents fournisseurs nomment le même modèle différemment. Pour voir les identifiants exacts disponibles pour votre clé, appelez GET https:/ avec le même en-tête Authorization et copiez l'identifiant depuis la liste :
curl https://api.cheaptokens.dev/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"Si la logique de nommage du tableau semble étrange, comment lire les noms de modèles IA explique alias versus version épinglée.
Prouvez la correction avec une commande curl#
Sortez l'outil de l'équation et appelez l'API directement. Remplacez l'espace réservé de la clé par la vôtre :
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
"messages": [{"role": "user", "content": "Say hi in one word."}],
"max_tokens": 20
}'Cette seule requête contient les trois suspects : la clé dans l'en-tête, l'URL de base dans la première ligne, l'identifiant du modèle dans le corps. Une réponse JSON avec un tableau choices signifie que les trois sont corrects, et que ce que votre outil fait différemment est le problème. Si cela échoue, changez une chose à la fois :
- 401 → remplacez par la clé obtenue depuis CheapTokens et relancez.
- 404 → comparez l'URL caractère par caractère avec celle ci-dessus, puis l'identifiant du modèle.
Une fois curl fonctionnel, copiez les trois mêmes valeurs dans l'outil : la clé, l'URL de base (https:/, ou sans /v1 pour le SDK Anthropic et Claude Code) et l'identifiant complet du modèle.
Si cela ne fonctionne toujours pas#
- Même erreur dans l'outil, curl fonctionne. L'outil lit une ancienne clé ou URL depuis ailleurs : un second fichier de configuration, un profil enregistré, une variable d'environnement. Redémarrez l'outil après modification.
- Pas sûr que l'identifiant du modèle soit correct. Appelez
GET /v1/modelsavec votre clé et copiez l'identifiant depuis la liste. - Connexion refusée, délais d'attente, erreurs de certificat. Ce n'est pas un 401 ou 404 ; voir erreurs de connexion courantes.
- Pas sûr de ce à quoi la première requête doit ressembler. Votre première requête API procède étape par étape, et la documentation contient la référence complète.
L'habitude à garder : quand un appel échoue, lisez d'abord le numéro. 401 signifie généralement la clé, 404 généralement l'adresse ou l'identifiant du modèle, et curl tranche. Cela résout la plupart de ces erreurs avant même d'ouvrir un seul journal.



