Claude Code'u DeepSeek V4, OpenRouter, LiteLLM veya başka bir üçüncü taraf model sağlayıcısına yönlendirdiğinizde Invalid custom3p enterprise config hatasını görüyorsanız, sorun genellikle politika engeli değil yapılandırma doğrulamasıdır. Bu rehberde custom3p etiketinin ne anlama geldiğini, en yaygın 6 nedeni ve her biri için uygulanabilir düzeltmeleri bulacaksınız.
TL;DR
Invalid custom3p enterprise config, Claude Code'un üçüncü taraf sağlayıcı yapılandırmanızı doğrulayamadığı anlamına gelir.
custom3p, Claude Code'un ANTHROPIC_BASE_URL ile yapılandırılan Anthropic dışı API uç noktaları için kullandığı dahili etikettir.
En sık nedenler:
-
ANTHROPIC_BASE_URLsonunda gereksiz/v1 - Yanlış kimlik doğrulama değişkeni
- Hatalı
settings.json - Yeni kurulumda onboarding'in tamamlanmamış olması
- Ağ geçidinin gerekli başlıkları iletmemesi
- Yönetilen kurumsal politikalarla çakışma
İlk olarak URL biçimini kontrol edin. Çoğu durumda sorun burada çıkar.
custom3p ne anlama geliyor?
Claude Code istekleri şu modlardan biriyle yönlendirir:
| Mod | Nasıl tetiklenir |
|---|---|
| Anthropic API | Varsayılan, geçersiz kılma yok |
| Amazon Bedrock | CLAUDE_CODE_USE_BEDROCK=1 |
| Google Vertex AI | CLAUDE_CODE_USE_VERTEX=1 |
| Microsoft Foundry | CLAUDE_CODE_USE_FOUNDRY=1 |
| Özel üçüncü taraf |
ANTHROPIC_BASE_URL Anthropic dışı bir uç noktaya işaret eder |
Son satırdaki özel üçüncü taraf modu, Claude Code içinde custom3p olarak etiketlenir.
Örneğin şu hedefler custom3p kapsamına girer:
- LiteLLM
- OpenRouter
- Yerel vLLM sunucusu
- Kurumsal LLM gateway'i
- Anthropic uyumlu özel proxy
Claude Code, ilk API çağrısından önce bu yapılandırmayı doğrular. Doğrulama başarısız olursa şu hatayı üretir:
Invalid custom3p enterprise config
Bu hata, üçüncü taraf sağlayıcı kullanımının engellendiği anlamına gelmez. Genellikle eksik veya yanlış yapılandırılmış bir alan vardır.
Geliştiriciler bu hatayla neden karşılaşıyor?
Nisan 2026'da Anthropic, Claude Code istemci kimliğini taklit ederek Claude Pro veya Max abonelik erişimini kullanan üçüncü taraf araçları engelledi. OpenClaw gibi bazı araçlar bu yüzden çalışmayı durdurdu.
Bu yazının konusu farklıdır.
Burada ele alınan senaryo, Claude Code'un resmi olarak desteklediği üçüncü taraf sağlayıcı yönlendirmesidir. Bu kullanımda kendi gateway'inizi, kendi API anahtarınızı veya OpenRouter gibi bir sağlayıcıyı kullanırsınız.
Örneğin bazı geliştiriciler Claude Code ajan döngüsünü OpenRouter üzerinden DeepSeek V4 Pro ile çalıştırıyor. Benzer şekilde DeepClaude gibi projeler bu kurulumu tek komutluk hale getiriyor.
Ancak Claude Code bu modda daha katı yapılandırma doğrulaması yapar. Bir alan yanlışsa sonuç çoğunlukla aynıdır:
Invalid custom3p enterprise config
1. Neden: ANTHROPIC_BASE_URL sonunda /v1 kullanmak
En yaygın hata budur.
Claude Code, verdiğiniz temel URL'nin sonuna otomatik olarak /v1/messages ekler.
Bu yüzden temel URL'niz zaten /v1 içeriyorsa istek şu hale gelir:
/v1/v1/messages
Bu da çoğu gateway'de 404 döndürür.
Yanlış
export ANTHROPIC_BASE_URL="https://api.openrouter.ai/api/v1"
export ANTHROPIC_BASE_URL="https://litellm.yourcompany.com/v1"
Doğru
export ANTHROPIC_BASE_URL="https://api.openrouter.ai/api"
export ANTHROPIC_BASE_URL="https://litellm.yourcompany.com"
URL'yi test edin
Claude Code'un çağıracağı uç noktayı elle test edin:
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
"${ANTHROPIC_BASE_URL}/v1/messages" \
-d '{"model":"claude-sonnet-4-6","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}'
Sonuçları şöyle yorumlayın:
| HTTP kodu | Anlamı |
|---|---|
200 |
Uç nokta çalışıyor |
400 |
Uç nokta var, gövde/parametre hatalı olabilir |
404 |
Büyük olasılıkla URL biçimi yanlış, özellikle /v1 tekrarı |
2. Neden: Yanlış kimlik doğrulama değişkeni kullanmak
Claude Code, kimlik doğrulama için iki farklı ortam değişkeni kullanabilir.
| Değişken | Gönderilen başlık | Ne zaman kullanılmalı? |
|---|---|---|
ANTHROPIC_API_KEY |
x-api-key |
Anthropic formatında API key bekleyen gateway'ler |
ANTHROPIC_AUTH_TOKEN |
Authorization: Bearer |
OAuth/Bearer token bekleyen gateway'ler, LiteLLM, çoğu OpenRouter kurulumu |
OpenRouter örneği
OpenRouter genellikle Bearer token bekler:
export ANTHROPIC_AUTH_TOKEN="sk-or-your-openrouter-key"
export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
OpenRouter ile ANTHROPIC_API_KEY kullanırsanız Claude Code x-api-key başlığı gönderir. Gateway bunu beklemiyorsa istek kimlik doğrulamada başarısız olur ve Claude Code bunu geçersiz kurumsal yapılandırma olarak raporlayabilir.
LiteLLM örneği
export ANTHROPIC_AUTH_TOKEN="sk-litellm-your-virtual-key"
export ANTHROPIC_BASE_URL="https://your-litellm-server:4000"
API key bekleyen gateway örneği
DeepSeek gateway'i veya API key ile çalışan yerel vLLM sunucusu için:
export ANTHROPIC_API_KEY="your-key-here"
export ANTHROPIC_BASE_URL="https://your-vllm-server"
Kural basit: Gateway hangi başlığı bekliyorsa Claude Code tarafında ona karşılık gelen değişkeni kullanın.
3. Neden: Hatalı settings.json
Yapılandırmayı ortam değişkenleri yerine ~/.claude/settings.json içinde tutuyorsanız, JSON hataları doğrulamayı daha istek atılmadan bozabilir.
Sık yapılan hata: sondaki virgül
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "sk-or-your-key",
}
}
Bu geçersiz JSON'dur.
Sık yapılan hata: akıllı tırnak
{
"env": {
“ANTHROPIC_BASE_URL”: “https://openrouter.ai/api”
}
}
Bu da geçersiz JSON'dur.
Doğru biçim
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "sk-or-your-openrouter-key"
}
}
Dosyayı doğrulayın
Python ile:
python3 -c "import json, os; json.load(open(os.path.expanduser('~/.claude/settings.json')))" && echo "Valid JSON"
Veya jq ile:
jq . ~/.claude/settings.json
Burada hata alıyorsanız Claude Code yapılandırmayı okuyamaz. Bu durumda Invalid custom3p enterprise config hatası gateway'e ulaşmadan oluşabilir.
4. Neden: Yeni kurulumda onboarding tamamlanmamış olabilir
Claude Code, settings.json içindeki kurumsal yapılandırmayı okumadan önce ~/.claude.json dosyasında şu alanı kontrol eder:
"hasCompletedOnboarding": true
Yeni kurulumda bu değer yoksa Claude Code özel üçüncü taraf yapılandırmanızı atlayabilir ve standart Anthropic kimlik doğrulama akışına dönebilir.
Durumu kontrol edin:
cat ~/.claude.json | python3 -m json.tool 2>/dev/null | grep hasCompletedOnboarding
Eksik veya false ise dosyaya şu içeriği ekleyin:
{
"hasCompletedOnboarding": true,
"primaryApiKey": "sk-placeholder"
}
primaryApiKey burada yer tutucudur. Gerçek kimlik doğrulama değeri settings.json veya ortam değişkenleri tarafından sağlanır. Biçim kontrolünü geçmek için sk- ile başlayan bir değer kullanabilirsiniz.
Ardından Claude Code'u yeniden başlatın.
5. Neden: Gateway gerekli başlıkları iletmiyor
Claude Code doğrulama sırasında bazı yetenekleri müzakere etmek için ek başlıklar gönderir. Gateway bu başlıkları siliyorsa Claude Code beklenen yanıtı alamaz.
İletilmesi gereken başlıklardan bazıları:
anthropic-beta
anthropic-version
X-Claude-Code-Session-Id
LiteLLM v1.82.9+ sürümlerinde bu genellikle varsayılan olarak çalışır.
Özel nginx proxy kullanıyorsanız başlıkları açıkça iletin:
location /v1/ {
proxy_pass http://backend;
proxy_set_header anthropic-beta $http_anthropic_beta;
proxy_set_header anthropic-version $http_anthropic_version;
proxy_set_header X-Claude-Code-Session-Id $http_x_claude_code_session_id;
}
Gateway'iniz anthropic-beta başlığını iletemiyorsa geçici çözüm olarak şunu kullanabilirsiniz:
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Bu, beta başlığı gerektiren özellikleri devre dışı bırakır. Temel ajan döngüsü çalışmaya devam eder; bazı deneysel özellikler kullanılamaz.
6. Neden: Kurumsal politika çakışması
Claude Team veya Enterprise planında yönetilen ayarlar kullanılıyorsa, bu ayarlar yerel yapılandırmaların önüne geçebilir.
Etkilenebilecek yerler:
~/.claude/settings.json- Ortam değişkenleri
- Model listesi
- Özel base URL ayarları
Yönetilen ayar olup olmadığını kontrol edin:
ls ~/.claude/managed-settings.json 2>/dev/null && echo "Yönetilen ayarlar bulundu"
Claude Code içinden de kontrol edebilirsiniz:
/status
"Yönetilen ayarlar" aktif görünüyorsa yöneticinizin şunları yapması gerekebilir:
- Gateway domain'inizi izin verilen base URL listesine eklemek
- Gateway model kimliklerini içeren
availableModelstanımlamak - Kullanıcınızı özel base URL kısıtlamasından muaf tutmak
macOS'ta kurumsal yönetilen ayarlar genellikle şu konumdadır:
/Library/Application Support/ClaudeCode/managed-settings.json
Windows ve Linux'ta eşdeğer yönetilen ayar dizinini kontrol edin.
Tam çalışan yapılandırma örnekleri
Claude Code + OpenRouter + DeepSeek V4 Pro
OpenRouter, Anthropic uyumlu API sağlar. Aşağıdaki yapılandırma Claude Code ajan döngüsünü DeepSeek V4 Pro üzerinden çalıştırır.
~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "sk-or-your-openrouter-key",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek/deepseek-v4-pro",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek/deepseek-v4-pro",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek/deepseek-v4-pro"
}
}
Model override önemlidir. Base URL değişse bile Claude Code varsayılan olarak claude-sonnet-4-6 gönderebilir. Modeli sabitlemezseniz istek OpenRouter'a claude-sonnet-4-6 olarak ulaşır.
Not: OpenRouter, Anthropic araç çağırma akışını her uç durumda birebir uygulamayabilir. Bazı karmaşık çoklu araç senaryolarında fonksiyon argümanları boş gelebilir. Güncel durum için OpenRouter Claude Code entegrasyon dokümanını kontrol edin.
Claude Code + LiteLLM
LiteLLM, Claude Code için pratik bir gateway seçeneğidir. Başlık iletimini yönetir ve farklı sağlayıcılara model yönlendirmesi yapabilir.
LiteLLM config.yaml:
model_list:
- model_name: claude-sonnet-4-6
litellm_params:
model: deepseek/deepseek-v4
api_key: "sk-your-deepseek-key"
- model_name: claude-opus-4-7
litellm_params:
model: deepseek/deepseek-v4-pro
api_key: "sk-your-deepseek-key"
Claude Code ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:4000",
"ANTHROPIC_AUTH_TOKEN": "sk-litellm-your-key"
}
}
Bu kurulumda Claude Code model alanında claude-sonnet-4-6 gönderir. LiteLLM bu adı yakalar ve DeepSeek V4'e yönlendirir. Bu nedenle Claude Code tarafında model override zorunlu değildir.
Claude Code + yerel vLLM
vLLM ile yerel model çalıştırmak için sunucuyu Anthropic uyumlu modda başlatın:
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-V3 \
--dtype auto \
--api-key local-key \
--port 8000
Claude Code yapılandırması:
export ANTHROPIC_BASE_URL="http://localhost:8000"
export ANTHROPIC_API_KEY="local-key"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-ai/DeepSeek-V3"
Hata ayıklama adımları
Yukarıdaki düzeltmeler işe yaramazsa Claude Code'u debug modunda çalıştırın:
claude --debug 2>&1 | head -100
Çıktıda özellikle şunları arayın:
Sending request to:
Response status:
enterprise config error:
Bunlar size şu bilgileri verir:
| Debug satırı | Ne gösterir? |
|---|---|
Sending request to: |
Claude Code'un çağırdığı gerçek URL |
Response status: |
Gateway'den dönen HTTP durumu |
enterprise config error: |
Dahili doğrulama hatası |
Gateway tarafında aynı isteği elle test etmek için:
curl -v -X POST "${ANTHROPIC_BASE_URL}/v1/messages" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${ANTHROPIC_AUTH_TOKEN}" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: max-tokens-3-5-sonnet-2024-07-15" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 10,
"messages": [
{
"role": "user",
"content": "hi"
}
]
}'
Sonuçları şöyle yorumlayın:
| HTTP kodu | Olası neden |
|---|---|
200 |
Gateway isteği kabul ediyor |
401 |
Kimlik doğrulama hatası |
403 |
Yetki/politika hatası |
404 |
URL yanlış |
422 |
Gövde veya model biçimi hatalı |
Curl çalışıyor ama Claude Code çalışmıyorsa debug çıktısındaki başlıkları karşılaştırın. Sık farklar:
anthropic-betaX-Claude-Code-Session-Id- Ön doğrulama isteğinin JSON gövdesi
-
Authorizationyerinex-api-keygönderilmesi
Apidog ile gateway isteklerini test etme
Üçüncü taraf sağlayıcı entegrasyonlarında hata ayıklarken Apidog, LLM gateway'inizden geçen istek ve yanıtları daha kolay incelemenizi sağlar.
Gateway'inizin /v1/messages uç noktası için bir koleksiyon oluşturabilir, çalışan istek şablonlarını kaydedebilir ve Claude Code'u her seferinde yeniden başlatmadan farklı sağlayıcı yanıtlarını karşılaştırabilirsiniz.
Pratik kurulum:
- Apidog'da yeni bir koleksiyon oluşturun.
- Base URL olarak gateway adresinizi girin.
-
/v1/messagesiçinPOSTisteği ekleyin. - Şu başlıkları koleksiyon değişkeni olarak tanımlayın:
anthropic-versionanthropic-betaAuthorization
- Farklı gateway veya model denemelerinde yalnızca değişkenleri değiştirin.
Bu yaklaşım özellikle başlık iletme sorunlarında faydalıdır. Claude Code yapılandırmasında hata aramadan önce gateway'in hangi başlıkları aldığını ve ilettiğini doğrulayabilirsiniz.
İlgili Claude Code yapılandırmaları
Beta başlığı bağımlılığını devre dışı bırakma
Bazı kurumsal gateway'ler özel başlıkları iletemez. Bu durumda:
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Bu ayar, beta özellik el sıkışmasını devre dışı bırakır. Ajan döngüsü çalışmaya devam eder; beta başlığına bağlı bazı özellikler kullanılamaz.
Gateway discovery ile model seçici
Claude Code v2.1.129 itibarıyla model seçiciyi gateway'in model listesinden doldurabilirsiniz:
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
Claude Code başlangıçta gateway'in şu uç noktasını sorgular:
/v1/models
Yalnızca claude veya anthropic ile başlayan model kimlikleri otomatik eklenir. DeepSeek gibi modeller için manuel override kullanmanız gerekebilir:
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek/deepseek-v4-pro"
Özel model seçici girişi ekleme
Model seçiciye tek bir özel model eklemek için:
export ANTHROPIC_CUSTOM_MODEL_OPTION="deepseek/deepseek-v4-pro"
export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="DeepSeek V4 Pro"
export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Claude Opus'tan 17 kat daha ucuz"
Bu seçenek /model menüsünde görünür. Böylece oturum içinde gateway modelinizi seçmek daha kolay olur.
İlgili kılavuzlar
Claude Code'u özel model backend'leriyle kullanıyorsanız şu yazılar da işinize yarayabilir:
- API Geliştirme Ekipleri için AGENTS.md Dosyaları Nasıl Yazılır — Claude Code davranışını kendi yığınınıza göre yapılandırın.
- Ruflo: Claude Code için Çoklu Ajan Orkestrasyonu — Claude Code'a çoklu ajan, kalıcı bellek ve MCP araçları ekleyin.
- Puter.js aracılığıyla Ücretsiz Sınırsız Claude API alın — istemci uygulamaları için tarayıcı tabanlı alternatif.
- En İyi Yerel LLM'ler 2026 — vLLM ile yerel çıkarım çalıştırmak isteyenler için.
SSS
Claude Code ile üçüncü taraf sağlayıcı kullanmak Anthropic şartlarına aykırı mı?
Hayır. Anthropic, Bedrock, Vertex AI, Foundry ve özel gateway'ler üzerinden yönlendirme için ANTHROPIC_BASE_URL kullanımını destekler.
Anthropic'in Nisan 2026'da engellediği şey, Claude Code istemci kimliğini taklit ederek Anthropic API'ye abonelik fiyatlandırmasıyla erişen üçüncü taraf araçlardı.
Kendi gateway'inizi veya kendi API anahtarınızla OpenRouter gibi bir sağlayıcıyı kullanmak farklı bir senaryodur.
Claude Code ajan döngüsü DeepSeek V4 Pro ile çalışır mı?
Temel döngü çalışır:
- Dosya düzenleme
- Shell komutları
- Çok adımlı görevler
- Kod üretimi ve refactor
Ancak bazı özellikler üçüncü taraf sağlayıcılar üzerinden çalışmayabilir:
- MCP sunucu araçları
- Görsel/görüntü girdisi
Bu özelliklere ihtiyacınız varsa Anthropic API, Bedrock veya Vertex üzerinde kalmanız gerekebilir.
Enterprise planda değilim. Hata neden "enterprise config" diyor?
Claude Code, üçüncü taraf sağlayıcı yapılandırmasını dahili olarak "enterprise config" olarak adlandırır.
Bu, plan seviyenizin Enterprise olduğu anlamına gelmez. Free veya Pro kullanan bireysel geliştiriciler de özel üçüncü taraf sağlayıcı yapılandırabilir.
Anthropic ve üçüncü taraf sağlayıcı arasında oturum ortasında geçiş yapabilir miyim?
Aynı oturum içinde hayır.
Claude Code base URL değerini başlangıçta okur. Sağlayıcı değiştirmek için:
- Claude Code'dan çıkın.
- Ortam değişkenlerini veya
settings.jsondosyasını değiştirin. - Yeni oturum başlatın.
DeepClaude bu geçişi CLI bayraklarıyla kolaylaştırır:
deepclaude --backend ds
deepclaude --backend anthropic
Gateway kurumsal güvenlik duvarı arkasında. Proxy destekleniyor mu?
Evet. Başlatmadan önce HTTPS_PROXY ayarlayın:
export HTTPS_PROXY="http://your-proxy:8080"
export ANTHROPIC_BASE_URL="https://your-internal-gateway"
Kurumsal TLS interception varsa CA sertifikanızı ekleyin:
export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca-bundle.pem"
Curl testi çalışıyor ama Claude Code hata veriyor. Neden?
Claude Code, curl testinizin birebir kopyalamadığı ek bir ön doğrulama isteği yapabilir.
Tam isteği görmek için:
claude --debug
Karşılaştırmanız gereken başlıca farklar:
anthropic-betaanthropic-versionX-Claude-Code-Session-Id-
Authorization/x-api-key - Model adı
- JSON gövdesi
Sonuç
Invalid custom3p enterprise config, genellikle düzeltilebilir bir yapılandırma doğrulama hatasıdır.
Kontrol sırası şu olmalı:
-
ANTHROPIC_BASE_URLsonunda/v1olmadığını doğrulayın. - Gateway'in beklediği kimlik doğrulama biçimine göre
ANTHROPIC_AUTH_TOKENveyaANTHROPIC_API_KEYkullanın. -
~/.claude/settings.jsondosyasını geçerli JSON olarak doğrulayın. - Yeni kurulumlarda
hasCompletedOnboardingdeğerini kontrol edin. - Gateway'in
anthropic-beta,anthropic-versionveX-Claude-Code-Session-Idbaşlıklarını ilettiğinden emin olun. - Kurumsal yönetilen ayarların yerel yapılandırmayı ezmediğini kontrol edin.
Yapılandırma doğrulandıktan sonra Claude Code'un ajan döngüsü OpenRouter, LiteLLM, vLLM veya kendi LLM gateway'iniz üzerinden çalışabilir. Temel sınırlamalar MCP araçları ve görüntü girdisi gibi Anthropic API'ye daha sıkı bağlı özelliklerde ortaya çıkar.

Top comments (0)