SyntaxError: Unexpected token '<', "<!doctype "... is not valid JSONjson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)invalid character '<' looking for beginning of valueError: Invalid JSON response bodyOpenAI 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.
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.
| İstemci | Base 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 |
https://apiclan.us/v1, Claude Code için https://apiclan.us şeklindedir. Her istemcinin tam kurulumu hızlı başlangıç sayfasında.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.