Kami menggunakan cookie. Cookie dan penyimpanan browser menjaga Anda tetap masuk dan mengingat preferensi Anda. Dengan izin Anda, kami juga mengukur cara situs digunakan. Anda dapat kapan saja. Lihat kebijakan cookie kami.

Pemecahan masalah

Akun

Pemecahan masalah

Solusi untuk masalah umum API: autentikasi, saldo, akses model, batas laju, timeout, streaming, CORS, dan base URL yang salah.

Sebagian besar masalah muncul sebagai status HTTP dan code di body error. Cari kode di bawah; Error memuat daftar lengkapnya. Request yang gagal (4xx atau 5xx apa pun) tidak pernah ditagih.

{ "error": { "message": "...", "type": "authentication_error", "code": "invalid_api_key" } }

401 invalid_api_key

Key tidak ada, salah format, atau sudah dicabut.

  • Kirim sebagai Authorization: Bearer sk-api14-.... OpenAI SDK melakukannya dari apiKey / api_key; dengan curl, pastikan $API14_API_KEY benar-benar terisi di shell tempat Anda menjalankannya (echo ${API14_API_KEY:0:9} seharusnya mencetak sk-api14-).
  • Waspadai tanda kutip atau baris baru yang nyasar ketika key berasal dari file .env.
  • OPENAI_API_KEY yang tertinggal di environment dapat menimpa key yang Anda maksudkan. Kirim key secara eksplisit untuk menyingkirkan kemungkinan ini.
  • Key yang dicabut langsung gagal. Key hanya ditampilkan sekali, jadi jika Anda kehilangannya, buat key baru di API key dan cabut yang lama.

Lihat Autentikasi.

402 insufficient_balance

Saldo USD Anda $0, atau (untuk video) di bawah perkiraan biaya job. Request tetap diblokir sampai Anda menambah dana, mengulang tidak membantu.

  • Periksa saldo dengan GET /credits atau di Billing. Lihat Saldo dan info key.
  • Tambah dana atau aktifkan top up otomatis. Paket menambahkan pemakaian termasuk ke saldo yang sama setiap bulan. Lihat Harga dan penagihan.
  • Pada job yang berjalan lama, perlakukan kode ini sebagai fatal dan berhenti, alih-alih membiarkan retry SDK berputar.

403 model_not_allowed atau plan_required

  • model_not_allowed: key memiliki allowlist model yang tidak mencakup ID model ini. Edit allowlist key di API key, atau gunakan key tanpa allowlist. Akhiran varian dihitung: pastikan ID persis yang Anda kirim diizinkan.
  • plan_required: paket Anda tidak mencakup kategori model ini. Paket standar mencakup semua kategori; periksa paket Anda di halaman harga.

404 model_not_found atau not_found

  • model_not_found: ID model tidak dikenal, dinonaktifkan, atau dihapus. ID menyertakan awalan provider: openai/gpt-5-mini, bukan gpt-5-mini. Cari ID persisnya dengan GET /models atau GET /models/{id} (tanpa key). Lihat ID model dan varian.
  • not_found: path tidak ada, atau id job video atau generasi bukan milik Anda. Ini biasanya berarti base URL salah (lihat di bawah). Pencarian generasi tepat setelah request juga dapat mengembalikan 404 selama beberapa detik sampai catatan muncul.

Base URL yang salah

Base URL-nya persis:

https://api14.com/api/v1

Kesalahan umum:

Yang Anda aturHasil
https://api14.com/v1 atau https://api14.comRequest mengenai situs web, bukan API: respons HTML, 404, atau error CORS di browser.
https://api14.com/api/v1/chat/completions sebagai baseSDK menambahkan path lagi. Atur hanya base-nya.
https://api.openai.com/v1 (default)Key api14 Anda ditolak oleh OpenAI. Atur base URL di kode atau dengan OPENAI_BASE_URL.

Kekhasan library: ruby-openai menambahkan v1 sendiri, jadi uri_base-nya adalah https://api14.com/api (Ruby); openai-go mengharapkan garis miring di akhir, https://api14.com/api/v1/ (Go).

429 rate_limited

Anda melampaui batas request per menit milik key atau paket Anda (Free 5, Pro 100, Team 3.000, Enterprise 3.000+). Respons menyertakan Retry-After: 60.

  • Tunggu sesuai Retry-After dan ulangi dengan exponential backoff dan jitter. OpenAI SDK resmi sudah melakukannya (dua retry secara default; naikkan maxRetries / max_retries).
  • Untuk pekerjaan massal, atur laju request alih-alih menembakkan semuanya sekaligus, dan masukkan beberapa item dalam satu request. Lihat Panduan: pemrosesan batch.
  • 429 juga bisa datang dari provider upstream, terutama pada varian :free. Gunakan fallback model atau provider routing untuk menyebar beban.

429 daily_limit_reached

Key mencapai batas pengeluaran USD hariannya. Mengulang tidak membantu sampai hari UTC berikutnya. Naikkan atau hapus batas di API key jika lalu lintasnya memang diharapkan. Pastikan logika retry Anda membedakan kode ini dari rate_limited, jika tidak job akan terus mengulang tanpa hasil. Lihat Batas laju.

Timeout

Model besar, model reasoning, dan keluaran panjang bisa memakan waktu beberapa menit.

  • Periksa timeout klien Anda. SDK Node dan Python default-nya 10 menit; klien HTTP lain sering memakai default yang lebih pendek.
  • Gunakan streaming untuk generasi panjang. Token mulai tiba dalam hitungan detik, dan timeout koneksi idle di proxy serta load balancer tidak lagi menjadi masalah. Lihat Streaming.
  • Atur max_tokens dan, untuk model reasoning, effort reasoning yang lebih rendah.
  • Jika Anda meneruskan request lewat server Anda sendiri, timeout proxy-nya (misalnya proxy_read_timeout nginx, yang default-nya 60 detik) juga berlaku.
  • Timeout di sisi Anda tidak membatalkan generasi upstream, yang mungkin tetap ditagih. Gunakan Pencarian generasi dengan id request untuk memeriksanya.

Streaming terputus atau berhenti lebih awal

  • Periksa finish_reason pada chunk terakhir. "length" berarti max_tokens tercapai; "error" berarti provider gagal di tengah stream, dan chunk membawa objek error. Ulangi, atau tambahkan fallback.
  • Proxy dan platform serverless kadang melakukan buffering atau memotong respons SSE. Matikan buffering (X-Accel-Buffering: no pada nginx) dan periksa durasi respons maksimum platform.
  • Jika Anda mem-parse stream sendiri, abaikan baris komentar yang diawali : (keep-alive) dan berhenti pada data: [DONE].
  • Menutup koneksi lebih awal tidak membatalkan tagihan: provider mungkin tetap menyelesaikan generasi.

Error CORS dan aplikasi browser

Jangan pernah menaruh API key di kode browser atau mobile. Siapa pun dapat membacanya dari halaman dan membelanjakan saldo Anda. Panggil api14 dari backend Anda sendiri dan hanya ekspos endpoint Anda sendiri ke browser:

// 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();
});

Error CORS di browser selama pengembangan biasanya berarti base URL salah (request sampai ke situs web, bukan ke API) atau header request kustom yang tidak diizinkan oleh preflight API; memindahkan panggilan ke server Anda menyelesaikan keduanya.

Masalah versi SDK

  • Python openai di bawah 1.0 memakai openai.ChatCompletion.create dan openai.api_base. Upgrade dengan pip install -U openai dan gunakan klien OpenAI(base_url=..., api_key=...).
  • chat.completions.parse tidak ada: rilis 1.x/4.x yang lebih lama hanya memiliki client.beta.chat.completions.parse. Upgrade paketnya.
  • Error parameter tidak dikenal dari SDK untuk field gateway (provider, models, reasoning, plugins): kirim dengan extra_body di Python, atau opsi extra-body yang setara di SDK lain. Lihat Kompatibilitas OpenAI SDK.
  • 400 dari upstream dengan pesan provider: parameter tidak didukung oleh model atau provider tersebut. Periksa supported_parameters model di Model, atau tambahkan provider: { "require_parameters": true }.