401 Unauthorized with a key you just copiedinvalid_api_key / authentication_errorcurl works but the app does not, with the same keyThe key works in one client and not anotherCertains clients HTTP et outils no-code demandent un « token » et ajoutent eux-mêmes le préfixe Bearer. Coller 'Bearer sk-...' dans un tel champ produit 'Bearer Bearer sk-...'.
Copier depuis une fenêtre de chat ou un PDF peut ramener un saut de ligne final ou une espace insécable. La chaîne paraît identique à l'écran et ne l'est pas dans ce qui est transmis.
Quelques passerelles acceptent plutôt un en-tête x-api-key, ou en plus. Envoyer la clé dans le mauvais en-tête revient exactement à ne pas l'envoyer du tout.
Affichez exactement ce que votre client envoie, avec la longueur de la clé visible :
KEY='paste-here'
echo "length: ${#KEY}"
curl -s -o /dev/null -w '%{http_code}\n' \
'YOUR_BASE_URL/models' -H "Authorization: Bearer $KEY"
Si la longueur n'est pas celle attendue, le problème vient de la copie. Un 200 ici et un 401 dans votre application signifient que l'application construit l'en-tête autrement : examinez ce qu'elle envoie, pas ce que vous avez collé.
sk- et vont dans Authorization: Bearer <key>. Une clé appartient à un groupe, donc une clé qui s'authentifie correctement peut quand même renvoyer 404 sur un modèle hors de son groupe : c'est une autre erreur, avec une autre solution.Dernière vérification le 2026-10-01. Rédigé à partir de problèmes diagnostiqués sur une passerelle compatible OpenAI en production, pas compilé à partir d'autres sites.