Dokümantasyon

Dokümantasyon

ANTHROPIC_BASE_URL

Claude Code'u ve Anthropic SDK'lerini api.anthropic.com dışındaki bir uç noktaya yönlendiren ortam değişkeni — değişkenin eksiksiz açıklaması, istemciye göre kurulum ve hataların neredeyse tamamına yol açan iki tuzak.

ANTHROPIC_BASE_URL, Anthropic SDK'lerine ve Claude Code'a API isteklerini varsayılan https://api.anthropic.com yerine hangi ana makineye göndereceklerini bildirir. Değişkeni yol içermeyen bir origin değerine ayarlayın — istemci /v1/messages yolunu kendisi ekler — ve Authorization: Bearer başlığına dönüşen ANTHROPIC_AUTH_TOKEN ile birlikte kullanın.

~/.zshrc
# The origin only — no trailing /v1, no trailing slash.
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-kn-...

Sonrasında yeni bir terminal açın: Claude Code ve SDK'ler bu değişkenleri süreç başlatılırken okur; bu nedenle zaten çalışan bir oturum eski uç noktayı kullanmaya devam eder.

ANTHROPIC_BASE_URL değerine /v1 eklemeyin. Anthropic istemcileri yolu kendileri ekler; dolayısıyla https://api.kunavo.com/v1, /v1/v1/messages adresine istek gönderilmesine ve her çağrının 404 yanıtı vermesine yol açar. OpenAI SDK'si bunun tersini yapar ve base_url değerinde /v1 bulunmasını ister — bu fark, buradaki en yaygın yapılandırma hatasıdır.

Her değişken ve işlevi

Claude Code'un okuduğu değişkenlerin tam listesi Anthropic'in ortam değişkenleri başvurusunda yer alıyor. Uç noktayı yönlendirirken önemli olanlar şunlardır.

DeğişkenDeğerDenetlediği ayar
ANTHROPIC_BASE_URLhttps://api.kunavo.comHer isteğin gönderildiği origin. Yol ve sondaki eğik çizgi bulunmaz.
ANTHROPIC_AUTH_TOKENsk-kn-…Authorization: Bearer olarak gönderilen kimlik bilgisi. Ağ geçidinin istediği budur.
ANTHROPIC_API_KEYsk-ant-…api.anthropic.com'un beklediği biçim olan x-api-key başlığıyla gönderilen kimlik bilgisi. Bunu YA DA yukarıdaki belirteci ayarlayın; ikisini birden değil.
ANTHROPIC_MODELclaude-sonnet-5Claude Code'un konuşmada kullandığı ana model.
ANTHROPIC_DEFAULT_OPUS_MODELclaude-opus-5-5opus takma adının arkasındaki model (/model opus). Claude Code'un kendi varsayılanı en yeni Opus'tur; bu nedenle endpoint'in sunduğu modellerden birine sabitleyin. Opus 5.5 için Claude Code v2.1.280 veya sonrası gerekir.
ANTHROPIC_DEFAULT_SONNET_MODELclaude-sonnet-5sonnet takma adının arkasındaki model (/model sonnet). Takma ad varsayılan olarak Sonnet 5.5'i ister; bu nedenle endpoint'in sunduğu bir Sonnet sürümüne sabitleyin.
ANTHROPIC_DEFAULT_HAIKU_MODELclaude-haiku-4-5haiku takma adının (/model haiku, haiku olarak ayarlanmış alt ajanlar) arkasındaki model ve Claude Code'un kendi arka plan çağrılarında kullandığı model. Takma ad v2.1.293'ten itibaren Haiku 5.5'i ister; bu nedenle uç noktanın sunduğu bir Haiku modelini sabitleyin.
Model adları, uç noktanın gerçekten sunduğu modellerden olmalıdır. Bir ağ geçidine yönlendirip orada bulunmayan bir model kimliğini bırakmak, en yaygın ikinci hatadır ve kimlik doğrulama hatası yerine 404 model_not_found olarak görünür. Kunavo'nun model kimlikleri modeller sayfasında listelenir ve canlı olarak GET /v1/models tarafından döndürülür.

İstemciye göre kurulum

Claude Code

Dışa aktarma komutlarını Claude Code'un başlatıldığı kabuk profiline ekleyin, ardından yeni bir terminal açın. Kurulumda veya iş akışında başka bir değişiklik gerekmez.

~/.zshrc
# ~/.zshrc (or ~/.bashrc) — applies to every Claude Code session.
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-kn-...

# Pin models this endpoint serves. Claude Code's default and its opus/sonnet
# aliases follow Anthropic's newest models, which may not be served here —
# unpinned, those calls 404.
export ANTHROPIC_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

Geçerli oturumun hangi uç noktayı kullandığını doğrulamak için Claude Code içinde /status komutunu çalıştırın. Anahtarın nereden oluşturulacağını da içeren adım adım yönergeler: Claude Code'da API anahtarı ayarlama.

Anthropic SDK (Python / TypeScript)

SDK'ler aynı ortam değişkenlerini okur; her iki ayar da oluşturucuya aktarılabilir. Bu, tek bir süreç birden fazla uç noktayla iletişim kurduğunda kullanışlıdır.

anthropic_sdk.py
from anthropic import Anthropic

# The Anthropic SDK appends /v1/messages, so pass the origin — not .../v1.
client = Anthropic(
    base_url="https://api.kunavo.com",
    auth_token="sk-kn-...",          # sets the Authorization: Bearer header
)

msg = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=512,
    messages=[{"role": "user", "content": "Say hi"}],
)
print(msg.content[0].text)

OpenAI SDK — diğer kullanım biçimi

Kodunuz zaten OpenAI ile iletişim kuruyorsa ANTHROPIC_BASE_URL kullanmanız gerekmez. base_url değerini OpenAI uyumlu yola yönlendirin; bu kez /v1 ile birlikte kullanın ve aynı Claude modellerini /v1/chat/completions üzerinden çağırın.

openai_sdk.py
from openai import OpenAI

# The OpenAI SDK is the other convention: it wants the /v1 in the base_url.
client = OpenAI(
    api_key="sk-kn-...",
    base_url="https://api.kunavo.com/v1",
)

r = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "Say hi"}],
)
print(r.choices[0].message.content)

Cline, Roo Code, Kilo Code, Cursor

Düzenleyici ajanları genellikle aynı iki ayarı ortam değişkenleri yerine kendi arayüzlerinde sunar: "temel URL" veya "özel uç nokta" alanı ve API anahtarı alanı. Kurallar değişmez: Anthropic tarzı sağlayıcıda /v1 içermeyen origin kullanın ve anahtarı API anahtarı alanına girin. İstemciye göre adım adım yönergeler: Cline, Roo Code, Kilo Code.

Çalıştığını doğrulayın

Tek bir curl komutu temel URL'yi ve kimlik bilgisini aynı anda doğrular. JSON gövdeli 200 yanıtı, ikisinin de doğru olduğu anlamına gelir.

# 200 and a JSON body means the base URL and the token are both right.
curl -sS https://api.kunavo.com/v1/messages \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "content-type: application/json" \
  -d '{"model":"claude-haiku-4-5","max_tokens":16,
       "messages":[{"role":"user","content":"ping"}]}'

# In Claude Code, /status shows the endpoint the session is actually using.

Çalışmıyorsa

BelirtiNedenÇözüm
Her istekte 404ANTHROPIC_BASE_URL değerinin sonuna /v1 eklenmişYalnızca origin değerini ayarlayın. İstemci /v1/messages yolunu ekler.
401 / geçersiz x-api-keyUç nokta bearer belirteçleriyle kimlik doğrularken kimlik bilgisi ANTHROPIC_API_KEY olarak ayarlanmışBunun yerine ANTHROPIC_AUTH_TOKEN kullanın — ayrıntılı fark
Hâlâ api.anthropic.com'a istek gönderiliyorDeğişkenler oturum başladıktan sonra dışa aktarılmış veya kabuğun okumadığı bir profile ayarlanmışYeni bir terminal açın; istemciyi başlatan aynı kabukta echo $ANTHROPIC_BASE_URL komutuyla doğrulayın.
404 model_not_foundUç noktanın sunmadığı model kimliğiANTHROPIC_MODEL değerini GET /v1/models içindeki bir kimliğe ayarlayın
Claude Code kredi bakiyesinin çok düşük olduğunu söylüyorİstekler uç noktaya ulaşıyor ve aboneliğe değil anahtara fatura ediliyorBu beklenen bir durumdur — bakiye yükleyin veya plana dönmek için belirteci kaldırın. Bkz. yetersiz kredi

Bunun Pro veya Max aboneliğine etkisi

Bir kimlik bilgisi değişkeni ayarlıyken Claude Code, oturum açılmış abonelik yerine anahtar üzerinden ücretlendirme yapar: plan limitleri uygulanmaz ve kullanım, anahtarın sahibine fatura edilir. Aboneliğin kendisi etkilenmez — değişkeni kaldırıp yeni bir terminal açın; Claude Code yeniden plana döner. İki ödeme biçimi asla birleşmez. Aralarındaki maliyet hesabı için Claude Code fiyatlandırması sayfasına bakın.

Sonraki

Sık sorulan sorular

ANTHROPIC_BASE_URL nedir?

ANTHROPIC_BASE_URL, Anthropic SDK'lerine ve Claude Code'a API isteklerini varsayılan https://api.anthropic.com yerine hangi ana makineye göndereceklerini bildiren ortam değişkenidir. Değişkeni yol içermeyen bir origin değerine ayarlayın — istemci /v1/messages yolunu kendisi ekler — ve Authorization: Bearer başlığına dönüşen ANTHROPIC_AUTH_TOKEN ile birlikte kullanın. Anthropic ile uyumlu tüm uç noktalar çalışır; Kunavo'da değer https://api.kunavo.com şeklindedir.

ANTHROPIC_BASE_URL /v1 içermeli mi?

Hayır. ANTHROPIC_BASE_URL yalnızca origin değerini alır — https://api.kunavo.com; https://api.kunavo.com/v1 değil — çünkü Anthropic SDK'leri ve Claude Code /v1/messages yolunu kendileri ekler. /v1 eklemek, /v1/v1/messages adresine istek gönderilmesine ve 404 yanıtı alınmasına neden olur. OpenAI SDK'si bunun tersini yapar ve base_url değerinde /v1 bulunmasını ister; bu nedenle aynı ağ geçidi, isteği yapan istemciye göre iki farklı biçimde yazılır.

ANTHROPIC_AUTH_TOKEN ile ANTHROPIC_API_KEY arasındaki fark nedir?

ANTHROPIC_AUTH_TOKEN kimlik bilgisini Authorization: Bearer başlığıyla gönderirken ANTHROPIC_API_KEY, api.anthropic.com'un beklediği x-api-key başlığıyla gönderir. Bearer belirteçleriyle kimlik doğrulayan bir ağ geçidi ANTHROPIC_AUTH_TOKEN gerektirir; ANTHROPIC_BASE_URL değerini değiştirdikten sonra 401 alınmasının en yaygın nedeni bunun yerine ANTHROPIC_API_KEY ayarlamaktır. İkisinden yalnızca birini ayarlayın; ikisi de mevcutsa davranış istemci sürümüne bağlıdır.

Claude Code'da özel bir temel URL'yi nasıl ayarlarım?

Claude Code'un başlattığı kabuk profilinde (~/.zshrc veya ~/.bashrc) ANTHROPIC_BASE_URL ve ANTHROPIC_AUTH_TOKEN değişkenlerini dışa aktarın, ardından değişkenlerin devralınması için yeni bir terminal açın. Claude Code bunları başlangıçta okur; bu nedenle zaten çalışan bir oturum eski uç noktayı kullanmaya devam eder. Geçerli oturumun hangi uç noktayı kullandığını doğrulamak için Claude Code içinde /status komutunu çalıştırın.

ANTHROPIC_BASE_URL ayarlamak Claude Pro veya Max aboneliğimi devre dışı bırakır mı?

ANTHROPIC_AUTH_TOKEN gibi bir kimlik bilgisi değişkeni ayarlıyken Claude Code, oturum açılmış abonelik yerine anahtar üzerinden ücretlendirme yapar; bu nedenle Pro ve Max planı limitleri artık uygulanmaz ve kullanım, anahtarın sahibine fatura edilir. Aboneliğin kendisi etkilenmez ve devre dışı kalmaz — değişkeni kaldırıp yeni bir terminal açın; Claude Code yeniden plana döner.