Ana sayfa → Yardım

OpenAI uyumlu bir API'yi çağırırken Unexpected token '<' hatası

Base URL'niz yanlış ve sunucu API yerine bir web sayfası döndürüyor. İstemci de HTML'i JSON olarak ayrıştırmaya çalışıyor ve daha ilk karakterde başarısız oluyor.

Gördüğünüz hata

Neden oluyor

OpenAI uyumlu ağ geçitlerinin çoğu web sitesini ve API'yi aynı alan adından sunar. API'nin tanımadığı bir yolu istediğinizde temiz bir 404 almazsınız – sitenin ön yüzünü alırsınız, HTTP 200 ve Content-Type: text/html ile.

İstemcinin gözünden her şey başarılıdır, bu yüzden gövdeyi ayrıştırmaya devam eder. Gördüğünüz hata, bir JSON ayrıştırıcısının HTML belgesinin ilk karakterinden şikâyet etmesidir ve gerçek sorunun yakınından bile geçmez.

Bu, başarısız çağrının sağlayıcının hata kayıtlarında genellikle iz bırakmadığı anlamına da gelir – 200 bir hata değildir. Destek ekibi size bir sorun görmediğini söyleyecektir ve doğruyu söylüyordur.

Sebebin bu olduğunu doğrulayın

Tek komutla doğrulayın. Bir istek gönderin ve gövdeye değil içerik türüne bakın:

curl -s -o /dev/null -w '%{http_code} %{content_type}\n' \
  -X POST 'YOUR_BASE_URL/chat/completions' \
  -H 'Authorization: Bearer YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model":"MODEL","messages":[{"role":"user","content":"hi"}]}'

Çalışan bir uç nokta application/json döndürür – anahtar yanlış olsa bile bunu söyleyen bir JSON alırsınız. text/html görüyorsanız sorun anahtarda değil, URL'dedir.

Nasıl düzeltilir

  1. İstemcinizin /v1'i kendisinin ekleyip eklemediğini kontrol edinTuzağın tamamı bu. OpenAI SDK'ları /v1 eklemez – base URL'ye sizin yazmanız gerekir. Anthropic SDK ve Claude Code ise kendisi ekler; onlara zaten /v1 ile biten bir base URL verirseniz /v1/v1/messages oluşur ve aynı şekilde başarısız olur.
  2. Sondaki eğik çizgiye dikkat edinBazı istemciler yolları özensizce birleştirir. Eğik çizgiyle biten bir base URL, son yolda çift eğik çizgi oluşturabilir; bazı ağ geçitleri bunu API'ye değil ön yüze yönlendirir.
  3. API sunucusunu kullandığınızdan emin olunSağlayıcı ayrı bir API alt alan adı sunuyorsa, ana alan adı aynı yollarda pazarlama sitesini sunuyor olabilir. URL'nin şekli aynı, işleyen tamamen farklı.
İstemciBase URL şöyle olmalı
OpenAI SDK (Python, Node, Go)/v1 ile bitmeli
Codex, Cherry Studio, Chatbox, LobeChat/v1 ile bitmeli
Anthropic SDK/v1 olmadan – /v1/messages yolunu kendisi ekler
Claude Code/v1 olmadan – aynı sebep
APICLAN'da base URL, OpenAI tarzı istemciler için https://apiclan.us/v1, Claude Code için https://apiclan.us şeklindedir. Her istemcinin tam kurulumu hızlı başlangıç sayfasında.

İlgili konular

401 invalid API key – anahtar doğru göründüğü halde hata veriyorsaUç nokta açıkça var olduğu halde /v1/chat/completions için 404

Son kontrol: 2026-10-01. Canlı bir OpenAI uyumlu ağ geçidinde teşhis edilen sorunlardan yazılmıştır, başka sitelerden derlenmemiştir.