Claude Code "invalid x-api-key": isteğiniz Anthropic'e gitti
Wokey Team · 2026-09-24
Kısa cevap: invalid x-api-key görüyorsanız isteğiniz yapılandırdığınız gateway'e değil, Anthropic'in kendi api.anthropic.com adresine gitmiştir. Wokey bu mesajı asla döndürmez; Wokey'nin anahtar hatası alt çizgili invalid_api_key kodudur. Bu yüzden anahtarınızı hemen değiştirmeyin. Base URL'in neden uygulanmadığını bulun.
Önce kimin yanıt verdiğini bulun
İsteğin gerçekte nereye ulaştığını görmek için hatanızdaki JSON'u bu tabloyla karşılaştırın. Her satır curl ile yakalanmış ham bir yanıttır:
| Yanıtta geçen | Yanıtlayan | Anlamı |
|---|---|---|
"message":"invalid x-api-key" |
Anthropic | Bir sk- anahtarı Authorization: Bearer olarak gönderildi veya x-api-key değeri anahtara benzemiyor |
"message":"API key is invalid." |
Anthropic | Anthropic'in vermediği bir sk- anahtarı x-api-key olarak gönderildi |
"message":"x-api-key header is required" |
Anthropic | Hiç anahtar gönderilmedi |
"message":"Invalid bearer token" |
Anthropic | Bearer değeri sk- ile başlamıyor |
"code":"invalid_api_key" |
Wokey | İstek Wokey'ye ulaştı, ancak anahtar eksik, yanlış yazılmış veya silinmiş |
Anthropic'in tam yanıtı şöyle görünür. En dıştaki "type":"error" alanına ve genellikle bulunan request_id değerine dikkat edin:
{"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"},"request_id":"req_011C..."}
Wokey'nin yanıtında en dışta type: "error" yoktur ve code alt çizgi kullanır:
{"error":{"code":"invalid_api_key","message":"Invalid API key. Make sure you copied the complete Wokey API key, or create a new one at https://wokey.ai/api.","type":"invalid_request_error"}}
Wokey anahtarları sk- ile başlar. Böyle bir anahtarı ANTHROPIC_AUTH_TOKEN içine koyup (bearer token olarak gönderilir) isteğin Anthropic'e gitmesine izin verirseniz invalid x-api-key alırsınız. ANTHROPIC_API_KEY içine koyarsanız (x-api-key olarak gönderilir) API key is invalid. alırsınız. İki durumda da neden aynıdır.
Base URL neden uygulanmadı
1. Değişken claude komutunu çalıştıran süreçte yok. Bir export yalnızca geçerli terminal boyunca yaşar. Başka bir terminalde ayarlanan veya yeni terminal açılmadan ~/.zshrc dosyasına eklenen bir değişken bu sürece ulaşmaz; Dock'tan veya Başlat menüsünden açılan bir editör de onu görmez. claude komutunu başlatan terminalde iki değişkenin de var olduğunu kontrol edin:
env | grep ANTHROPIC
2. Değişken adı yanlış. Claude Code yalnızca ANTHROPIC_BASE_URL değerini okur. ANTHROPIC_API_BASE, ANTHROPIC_BASE, CLAUDE_BASE_URL ve OPENAI_BASE_URL yok sayılır ve istek sessizce resmi adrese gider.
3. settings.json içinde anahtar var ama adres yok. ~/.claude/settings.json dosyasındaki env bloğu ANTHROPIC_BASE_URL olmadan ANTHROPIC_AUTH_TOKEN ayarlıyorsa anahtar Anthropic'e gönderilir. İkisini birlikte tutun:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.wokey.ai",
"ANTHROPIC_AUTH_TOKEN": "your Wokey API key"
}
}
4. VS Code uzantısını kullanıyorsunuz. Uzantının oturum kontrolü shell değişkenlerini okumaz. Bunları VS Code kullanıcı ayarlarındaki claudeCode.environmentVariables içinde tanımlayın; VS Code uzantısı rehberine bakın.
5. Claude masaüstü uygulamasını kullanıyorsunuz. Masaüstü uygulaması ne ANTHROPIC_BASE_URL değerini ne de settings.json dosyasını okur. Gateway'i Developer → Configure Third-Party Inference altında ayarlayın; masaüstü uygulamasında üçüncü taraf API sorunlarını giderme yazısına bakın.
6. SDK'yı kendi kodunuzdan çağırıyorsunuz. Anthropic'in Python ve TypeScript SDK'ları varsayılan olarak resmi adresi kullanır. base_url değerini açıkça verin (TypeScript'te baseURL), yine /v1 olmadan:
from anthropic import Anthropic
client = Anthropic(base_url="https://api.wokey.ai", api_key="your Wokey API key")
Claude Code içinde doğrulayın
Claude Code'da /status komutunu çalıştırın. Status sekmesinde https://api.wokey.ai değerli bir Anthropic base URL satırı görünmelidir. Satır yoksa Claude Code resmi adresi kullanıyordur ve yukarıdaki nedenlerden biri geçerlidir.
curl ile karşılaştırın
claude komutunu başlatan terminalde şunu çalıştırın:
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'
Sonuç size şunu söyler:
curl: (3) URL rejected: No host part in the URL:ANTHROPIC_BASE_URLboş; değişken hiç ayarlanmamış.{"id":"msg_ile başlıyorsa: gateway ve anahtar doğrudur. Sorun Claude Code'un okuduğu yapılandırmadadır; yukarıdaki 3 ile 5 arasındaki nedenleri gözden geçirin.invalid_api_key: istek Wokey'ye ulaştı, yani artık sorun gerçekten anahtardadır. Konsolda anahtarın eksiksiz kopyalandığını ve silinmediğini kontrol edin.
Resmi API ile görüldüğünde
Anthropic'in API'sini doğrudan kullanıyorsanız invalid x-api-key tam olarak yazdığı anlama gelir: anahtar yanlıştır veya iptal edilmiştir ya da fazladan bir satır sonu veya boşlukla kopyalanmıştır. Claude Code, satır sonu içeren bir anahtarı göndermeden önce engeller ve Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break benzeri bir hata verir.
Sık sorulan sorular
Wokey "invalid x-api-key" döndürür mü?
Hayır. Bu mesaj Anthropic'in kendi API'sinden gelir. Eksik veya yanlış bir anahtar için Wokey, {"error":{"code":"invalid_api_key",...}} içeren bir 401 döndürür. "invalid x-api-key" görüyorsanız ANTHROPIC_BASE_URL uygulanmadığı için istek Wokey'ye hiç ulaşmamıştır.
Claude Code'un hangi base URL'i kullandığını nasıl kontrol ederim?
Claude Code'da /status komutunu çalıştırın ve Anthropic base URL satırına bakın. Wokey ile burada https://api.wokey.ai yazmalıdır. Satır yoksa veya Anthropic'in adresini gösteriyorsa değişken çalışan sürece ulaşmamıştır.
echo değişkeni gösteriyor, peki neden hâlâ başarısız oluyor?
Genellikle değişken export olmadan ayarlanmıştır ya da Claude Code, değişkeni hiç görmeyen başka bir terminalden, bir IDE'den veya bir masaüstü simgesinden başlatılmıştır. En güvenilir çözüm, ANTHROPIC_BASE_URL ve ANTHROPIC_AUTH_TOKEN değerlerini ~/.claude/settings.json dosyasındaki env bloğuna yazmaktır.
VS Code uzantısı veya masaüstü uygulaması bu hatayı gösterirse ne yapmalı?
VS Code uzantısı için değişkenleri kullanıcı ayarlarınızdaki claudeCode.environmentVariables içinde tanımlayın. Claude masaüstü uygulaması ortam değişkenlerini yok sayar: gateway'i Developer → Configure Third-Party Inference altında yapılandırın, ardından Save & Restart düğmesine tıklayın.
Wokey anahtarını doğrudan Anthropic ile kullanabilir miyim?
Hayır. Wokey anahtarı sk- ve ardından gelen 32 onaltılık karakterden oluşur ve yalnızca api.wokey.ai adresinde çalışır. Anthropic'e gönderilirse 401 alır.