Hesap
Sorun giderme
401, 402, 403, 404 ve 429 hatalarının, yanlış base URL, zaman aşımı, kesilen stream, CORS ve SDK sürümü sorunlarının nedenlerini ve çözümlerini bulun.
Çoğu sorun bir HTTP durumu ve hata gövdesindeki bir code olarak görünür. Aşağıda kodu bulun; tam liste Hatalar sayfasındadır. Başarısız istekler (her 4xx veya 5xx) asla ücretlendirilmez.
{ "error": { "message": "...", "type": "authentication_error", "code": "invalid_api_key" } }
401 invalid_api_key
Anahtar eksik, hatalı biçimlendirilmiş veya iptal edilmiş.
- Anahtarı
Authorization: Bearer sk-api14-...olarak gönderin. OpenAI SDK'ları bunuapiKey/api_keydeğerinden yapar; curl ile$API14_API_KEYdeğişkeninin çalıştırdığınız kabukta gerçekten ayarlı olduğunu kontrol edin (echo ${API14_API_KEY:0:9}çıktısısk-api14-olmalıdır). - Anahtar bir
.envdosyasından geliyorsa başıboş tırnak işaretlerine veya satır sonlarına dikkat edin. - Ortamda kalmış bir
OPENAI_API_KEY, kullanmak istediğiniz anahtarı geçersiz kılabilir. Bunu elemek için anahtarı açıkça geçin. - İptal edilmiş bir anahtar hemen başarısız olur. Anahtarlar yalnızca bir kez gösterilir; birini kaybettiyseniz API anahtarları sayfasında yeni bir anahtar oluşturun ve eskisini iptal edin.
Bkz. Kimlik doğrulama.
402 insufficient_balance
USD bakiyeniz 0 veya (video için) işin tahmini maliyetinin altında. Bakiye ekleyene kadar istekler engellenir; yeniden denemek işe yaramaz.
- Bakiyeyi
GET /creditsile veya Faturalandırma sayfasında kontrol edin. Bkz. Bakiye ve anahtar bilgisi. - Bakiye ekleyin veya otomatik yüklemeyi açın. Planlar her ay aynı bakiyeye dahil kullanım ekler. Bkz. Fiyatlandırma ve faturalandırma.
- Uzun süren işlerde bu kodu ölümcül sayıp durun; SDK'nın yeniden denemelerinin boşuna dönmesine izin vermeyin.
403 model_not_allowed veya plan_required
model_not_allowed: anahtarın model izin listesi bu model kimliğini içermiyor. Anahtarın izin listesini API anahtarları sayfasında düzenleyin veya izin listesi olmayan bir anahtar kullanın. Varyant sonekleri de sayılır: gönderdiğiniz tam kimliğin izinli olduğunu kontrol edin.plan_required: planınız bu model kategorisini içermiyor. Standart planlar bütün kategorileri kapsar; planınızı fiyatlandırma sayfasından kontrol edin.
404 model_not_found veya not_found
model_not_found: model kimliği bilinmiyor, devre dışı veya kaldırılmış. Kimlikler sağlayıcı önekini içerir:gpt-5-minideğil,openai/gpt-5-mini. Tam kimliğiGET /modelsveyaGET /models/{id}ile bulun (anahtar gerekmez). Bkz. Model kimlikleri ve varyantlar.not_found: yol mevcut değil veya video işi ya da generation kimliği size ait değil. Bu genellikle yanlış base URL anlamına gelir (aşağıya bakın). Bir isteğin hemen ardından yapılan Generation sorgulama, kayıt görünene kadar birkaç saniye404da döndürebilir.
Yanlış base URL
Base URL tam olarak şudur:
https://api14.com/api/v1
Sık yapılan hatalar:
| Ayarladığınız | Sonuç |
|---|---|
https://api14.com/v1 veya https://api14.com | İstekler API'ye değil web sitesine gider: HTML yanıtları, 404'ler veya tarayıcıda CORS hataları. |
Base olarak https://api14.com/api/v1/chat/completions | SDK yolu tekrar ekler. Yalnızca base'i ayarlayın. |
https://api.openai.com/v1 (varsayılan) | api14 anahtarınız OpenAI tarafından reddedilir. Base URL'i kodda veya OPENAI_BASE_URL ile ayarlayın. |
Kütüphane tuhaflıkları: ruby-openai v1 değerini kendisi ekler; bu yüzden uri_base değeri https://api14.com/api olur (Ruby); openai-go sonda bir eğik çizgi bekler, https://api14.com/api/v1/ (Go).
429 rate_limited
Anahtarınızın veya planınızın dakikalık istek limitini aştınız (Free 5, Pro 100, Team 3.000, Enterprise 3.000+). Yanıt Retry-After: 60 içerir.
Retry-Aftersüresini bekleyin ve üstel geri çekilme ile jitter kullanarak yeniden deneyin. Resmi OpenAI SDK'ları bunu zaten yapar (varsayılan olarak iki yeniden deneme;maxRetries/max_retriesdeğerini artırın).- Toplu işlerde istekleri hepsini bir anda atmak yerine aralıklı gönderin ve tek istekte birden çok öğe koyun. Bkz. Rehber: toplu işleme.
- 429 sağlayıcıdan da gelebilir, özellikle
:freevaryantlarında. Yükü dağıtmak için model yedekleme veya sağlayıcı yönlendirme kullanın.
429 daily_limit_reached
Anahtar günlük USD harcama limitine ulaştı. Bir sonraki UTC gününe kadar yeniden denemek işe yaramaz. Trafik beklenen bir şeyse limiti API anahtarları sayfasında artırın veya kaldırın. Yeniden deneme mantığınızın bu kodu rate_limited kodundan ayırdığından emin olun; aksi halde işler boşuna yeniden denemeye devam eder. Bkz. Hız limitleri.
Zaman aşımları
Büyük modeller, reasoning modelleri ve uzun çıktılar dakikalar sürebilir.
- İstemci zaman aşımınızı kontrol edin. Node ve Python SDK'ları varsayılan olarak 10 dakika kullanır; diğer HTTP istemcileri çoğunlukla daha kısa varsayılanlar kullanır.
- Uzun üretimleri stream edin. Token'lar saniyeler içinde gelmeye başlar ve proxy'lerdeki ve yük dengeleyicilerdeki boşta bağlantı zaman aşımları sorun olmaktan çıkar. Bkz. Streaming.
max_tokensayarlayın ve reasoning modelleri için daha düşük bir reasoning çabası seçin.- İstekleri kendi sunucunuz üzerinden aktarıyorsanız onun proxy zaman aşımları da geçerlidir (örneğin varsayılanı 60 saniye olan nginx
proxy_read_timeout). - Sizin tarafınızdaki bir zaman aşımı, sağlayıcı tarafındaki üretimi iptal etmez ve yine de faturalandırılabilir. Kontrol etmek için istek kimliğiyle Generation sorgulama kullanın.
Streaming kopuyor veya erken duruyor
- Son parçadaki
finish_reasondeğerini kontrol edin."length",max_tokensdeğerine ulaşıldığı;"error"ise sağlayıcının stream ortasında başarısız olduğu anlamına gelir ve parça birerrornesnesi taşır. Yeniden deneyin veya yedekler ekleyin. - Proxy'ler ve serverless platformlar bazen SSE yanıtlarını tamponlar veya keser. Tamponlamayı kapatın (nginx'te
X-Accel-Buffering: no) ve platformun en uzun yanıt süresini kontrol edin. - Stream'i kendiniz ayrıştırıyorsanız
:ile başlayan yorum satırlarını (keep-alive) yok sayın vedata: [DONE]satırında durun. - Bağlantıyı erken kapatmak faturayı iptal etmez: sağlayıcı üretimi yine de bitirebilir.
CORS hataları ve tarayıcı uygulamaları
API anahtarını asla tarayıcı veya mobil koda koymayın. Herkes onu sayfadan okuyup bakiyenizi harcayabilir. api14'ü kendi backend'inizden çağırın ve tarayıcıya yalnızca kendi uç noktanızı açın:
// server.js (Node / Express)
app.post("/api/chat", async (req, res) => {
const stream = await client.chat.completions.create({
model: "openai/gpt-5-mini",
messages: req.body.messages, // validate and limit this input
stream: true,
});
for await (const chunk of stream) res.write(chunk.choices[0]?.delta?.content ?? "");
res.end();
});
Geliştirme sırasında tarayıcıda görülen CORS hatası genellikle yanlış base URL (istek API yerine web sitesine ulaştı) veya API'nin preflight kontrolünün izin vermediği özel bir istek başlığıdır; çağrıyı sunucunuza taşımak ikisini de çözer.
SDK sürüm sorunları
- 1.0 öncesi Python
openaiopenai.ChatCompletion.createveopenai.api_basekullanır.pip install -U openaiile yükseltin veOpenAI(base_url=..., api_key=...)istemcisini kullanın. chat.completions.parseyok: eski 1.x/4.x sürümlerinde yalnızcaclient.beta.chat.completions.parsevardır. Paketi yükseltin.- SDK'dan gelen bilinmeyen parametre hataları ağ geçidi alanları için (
provider,models,reasoning,plugins): bunları Python'daextra_bodyile, diğer SDK'larda eşdeğer ek gövde seçeneğiyle geçin. Bkz. OpenAI SDK uyumluluğu. - Sağlayıcı mesajlı sağlayıcı kaynaklı
400: parametre o model veya sağlayıcı tarafından desteklenmiyor. Modeller içinde modelinsupported_parametersalanına bakın veyaprovider: { "require_parameters": true }ekleyin.