Neredeyse her 401 hatasının dört nedeni vardır ve bunlardan yalnızca biri "anahtar yanlış"tır. Diğer üçünde anahtar tamamen geçerlidir; bu yüzden anahtarı yeniden oluşturmak çoğu zaman boşa harcanan çabadır.
Hata
{
"type": "error",
"error": { "type": "authentication_error",
"message": "invalid x-api-key" }
}Nedenler ve çözümler özeti
| Neden | Çözüm |
|---|---|
| Ana bilgisayar için yanlış başlık | Anthropic x-api-key okur; OpenAI uyumlu ağ geçitlerinin çoğu Authorization: Bearer okur. Aynı değer yanlış başlıkta gönderildiğinde eksik kabul edilir. |
| Artakalan eski ortam değişkeni | Shell profilinde unutulmuş bir ANTHROPIC_API_KEY, az önce export ettiğiniz anahtarın önüne geçebilir. |
| Kimlik bilgisi değiştirilmeden Base URL'nin değiştirilmesi | Başka bir ana bilgisayara yönlendirmek, önceki sağlayıcının anahtarını orada geçerli kılmaz. Ana bilgisayar ve kimlik bilgisi birlikte değiştirilmelidir. |
| Anahtarda boşluk, satır sonu veya tırnak işareti | Bir PDF'den veya sohbetten kopyalamak genellikle görünmez karakterler ekler. Dizenin uzunluğunu kontrol edin. |
Ortamın gerçekte ne içerdiğini kontrol edin
Herhangi bir şeyi değiştirmeden önce değişkenlere uygulamayı çalıştıran aynı shell'de bakın. Vakaların şaşırtıcı bir bölümünde farklı sağlayıcılara ait iki kimlik bilgisi aynı anda tanımlıdır.
for v in ANTHROPIC_API_KEY ANTHROPIC_AUTH_TOKEN ANTHROPIC_BASE_URL; do
printf '%-22s [%s] tamanho=%s\n' \
"$v" "$(printenv "$v" | cut -c1-10)" "$(printenv "$v" | wc -c)"
doneKimlik bilgisini uygulamanın dışında test edin
Doğrudan yapılan bir istek, "ana bilgisayar anahtarı reddediyor" ile "uygulama anahtarı göndermiyor" durumlarını birbirinden ayırır. curl çalışıyor, kod çalışmıyorsa sorun kimlik bilgisi değildir.
curl -s -o /dev/null -w 'status=%{http_code}\n' \
"$ANTHROPIC_BASE_URL/v1/models" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN"
# 200 -> credencial boa; investigue a aplicação
# 401 -> credencial ou cabeçalho errados para este host401'i 403 ve 402'den ayırın
401, "kim olduğunuzu bilmiyorum" demektir: kimlik bilgisi kabul edilmemiştir. 403, "kim olduğunuzu biliyorum ve izniniz yok" demektir: kimlik doğrulanmıştır, ancak yetki yoktur. 402, "kim olduğunuzu biliyorum ve bakiyeniz yetersiz" demektir. Yalnızca 401, kimlik bilgisi değiştirilerek çözülür.
Kunavo üzerinden çağrı yapıyorsanız
Kunavo, sk-kn- anahtarını hem Authorization: Bearer hem de x-api-key içinde okur ve base URL, sonrasında hiçbir yol bulunmayan site kök adresidir. Claude Code ile ANTHROPIC_AUTH_TOKEN ve ANTHROPIC_BASE_URL kullanın; token, ANTHROPIC_API_KEY'nin gerektirdiği tek seferlik onaya bağlı değildir. Ayrıca ANTHROPIC_API_KEY'yi açıkça kaldırın — bu değişkendeki eski bir değer, yapılandırılmış görünen ancak yine de reddeden bir oturumun en yaygın nedenidir. Kimlik doğrulama adımları şu adreste yer alır: kimlik doğrulama belgeleri.
Sık sorulan sorular
Anahtarı yeniden oluşturmak sorunu çözer mi?
Yalnızca anahtar gerçekten iptal edilmişse. Diğer üç yaygın nedende — yanlış başlık, eski değişken, değiştirilmiş base URL — yeni anahtar da tamamen aynı şekilde başarısız olur.
401 bakiye yetersizliği olabilir mi?
Hayır. Yetersiz bakiye, kredilerden söz eden bir mesajla birlikte 402'dir. 401 her zaman kimlikle ilgilidir.
curl'de çalışıyor, kodumda çalışmıyor. Neden?
Neredeyse her zaman kod başka bir ortam değişkenini okur veya export'un ulaşmadığı başka bir shell/container içinde çalışır. Doğrulamak için işlem içinde kimlik bilgisini maskeli olarak yazdırın.
İlgili kılavuzlar
- Claude API'sinde 429 rate_limit_error hatası — anlamı ve çözümü
- Claude API'de 529 overloaded_error — anlamı ve nasıl önlenir
- Claude API 401 authentication_error / geçersiz x-api-key — tüm nedenler
Hata anlamlarına ilişkin daha fazla bilgi hata referansı bölümünde; anahtar almak kayıt ve kimlik doğrulama kılavuzu üzerinden bir dakika sürer.