Claude'daki 401 hatası her zaman beş şeyden biridir: yanlış üstbilgi, uç nokta için yanlış anahtar türü, biçimi bozuk ortam değişkeni, iptal edilmiş anahtar veya bu anahtar için yanlış base URL. Aşağıdaki teşhisi çalıştırın; sizdekinin hangisi olduğunu bir dakikadan kısa sürede bulursunuz.
Hata
{
"type": "error",
"error": {
"type": "authentication_error",
"message": "invalid x-api-key"
}
}Nedenler ve çözümler özeti
| Neden | Çözüm |
|---|---|
| Uç nokta için yanlış üstbilgi | Anthropic'in kendi API'si x-api-key + anthropic-version ister; OpenAI uyumlu uç noktalar Authorization: Bearer ister. |
| Anahtar/uç nokta uyuşmazlığı | sk-ant-… anahtarları yalnızca api.anthropic.com ile çalışır; ağ geçidi anahtarları (ör. sk-kn-…) yalnızca kendi ağ geçidi URL'leriyle çalışır. |
| Ortam değişkenine gizlice eklenen boşluk veya tırnak işaretleri | Tırnak işaretleri/yeni satırlar olmadan yeniden dışa aktarın; kopyala-yapıştır kaynaklı sonda bulunan \n karakterini yakalamak için print len(key) kullanın. |
| Anahtar iptal edilmiş veya çalışma alanı devre dışı bırakılmış | Konsolda yeni bir anahtar oluşturun ve gizli bilgi yöneticinizde döndürün. |
Ham curl ile yeniden üretin (SDK'nızı denklemden çıkarır)
curl çalışıyor ancak uygulamanız çalışmıyorsa hata anahtarda değil, ortam değişkenlerini uygulamanıza aktarma sürecindedir:
# Native Anthropic wire (works on api.anthropic.com and Kunavo /v1/messages)
curl -s https://api.kunavo.com/v1/messages \
-H "x-api-key: $KUNAVO_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'
# OpenAI-compatible wire (Bearer header instead)
curl -s https://api.kunavo.com/v1/chat/completions \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'
# Check the key isn't carrying whitespace
python3 -c "import os; k=os.environ['KUNAVO_API_KEY']; print(repr(k[:12]), len(k))"Anahtar ön ekini base URL ile eşleştirin
sk-ant-… → api.anthropic.com. sk-kn-… → api.kunavo.com/v1. Bir ağ geçidi anahtarını Anthropic'e (veya tersini) göndermek her zaman 401 döndürür — hata mesajı hiçbir zaman "wrong host" demez, bu nedenle sorun kolayca gözden kaçar.
Anahtar bir depoya veya günlüğe değdiyse döndürün
Anahtar doğru olduğu hâlde reddediliyorsa iptal edildiğini varsayın (otomatik tarayıcılar sızdırılmış anahtarları hızla iptal eder). Yeni bir anahtar oluşturun ve bunu commit edilen .env dosyaları yerine bir gizli bilgi yöneticisinde saklayın.
Kunavo üzerinden çağrı yapıyorsanız
Kunavo anahtarları (sk-kn-…) her uç noktada her iki üstbilgiyle kimlik doğrular — OpenAI SDK'larının gönderdiği Authorization: Bearer veya Anthropic SDK'larının kullandığı x-api-key ile — bu nedenle hangi SDK'yı kullanırsanız kullanın yalnızca base URL değişir. Anahtarlar kontrol panelinde anında oluşturulabilir ve iptal edilebilir. Anahtar kimlik doğrulamasından geçtikten sonra ücretlendirildiği oranlar Anthropic Claude API fiyat listesi.
Sık sorulan sorular
Anahtarım curl'de çalışıyor ama uygulamamda neden çalışmıyor?
Neredeyse her zaman ortam değişkenlerini uygulamaya aktarma sorunudur: kopyala-yapıştır kaynaklı sonda bulunan yeni satır, değere dahil edilmiş tırnak işaretleri, değişkenin sürece dışa aktarılmamış olması veya üretimde farklı bir ortamın yüklenmesi. Başarısız olan sürecin içinde anahtarın repr değerini ve uzunluğunu yazdırın.
Anthropic Console anahtarımı OpenAI uyumlu bir ağ geçidinde kullanabilir miyim?
Hayır. Her hizmet yalnızca kendi anahtarlarının kimlik doğrulamasını yapar: sk-ant anahtarları api.anthropic.com'a, ağ geçidi anahtarları ise ağ geçidine aittir. Çağrı yaptığınız base URL'den bir anahtar alın.
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.