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 anotherAlcuni client HTTP e strumenti no-code chiedono un «token» e aggiungono da soli il prefisso Bearer. Incollare 'Bearer sk-...' in un campo del genere produce 'Bearer Bearer sk-...'.
Copiare da una finestra di chat o da un PDF può portare con sé un a capo finale o uno spazio unificatore. La stringa a schermo sembra identica e non lo è in ciò che viene trasmesso.
Alcuni gateway accettano invece un header x-api-key, oppure entrambi. Inviare la chiave nell'header sbagliato equivale esattamente a non inviarla affatto.
Stampa esattamente ciò che invia il tuo client, con la lunghezza della chiave visibile:
KEY='paste-here'
echo "length: ${#KEY}"
curl -s -o /dev/null -w '%{http_code}\n' \
'YOUR_BASE_URL/models' -H "Authorization: Bearer $KEY"
Se la lunghezza non è quella prevista, il problema è la copia. Un 200 qui e un 401 nella tua applicazione significano che l'applicazione costruisce l'header in modo diverso: controlla cosa invia, non cosa hai incollato.
sk- e vanno in Authorization: Bearer <key>. Una chiave appartiene a un gruppo, quindi una chiave che si autentica correttamente può comunque dare 404 su un modello esterno al suo gruppo: è un errore diverso con una soluzione diversa.Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.