MenuBatas & kode galat

Batas & kode galat

API memakai kode status HTTP standar. Body galat mengikuti format klien yang kamu pakai, jadi SDK OpenAI dan Anthropic bisa membacanya apa adanya.

Format galat

Endpoint format OpenAI membalas objek error berisi message, type, dan code. Endpoint format Anthropic membalas "type": "error" dengan objek error berisi type dan message. Galat yang terjadi di tengah stream dikirim sebagai event dengan bentuk yang sama.

{
  "error": {
    "message": "GeraiPoints tidak cukup, silakan top up",
    "type": "insufficient_quota",
    "code": "insufficient_quota"
  }
}
Isi message ditulis dalam bahasa Indonesia dan bisa berubah. Untuk logika program, periksa kode status HTTP dan type/code, bukan teks pesannya.

Kode status

Statustype / codeArtiYang perlu dilakukan
400invalid_request_errorPermintaan tidak valid: body bukan JSON, model kosong, atau messages tidak ada/kosong. Juga muncul bila base URL salah sehingga path jadi /v1/v1/….Periksa body dan base URL.
401authentication_errorAPI key tidak dikirim, salah, atau sudah dicabut — atau key tertukar jalur (key bansos di endpoint berbayar, dan sebaliknya).Cek key dan base URL — Autentikasi.
402insufficient_quotaGeraiPoints tidak cukup untuk request ini.Top up GeraiPoints lalu kirim ulang.
403permission_errorModel tidak ada di allowlist key ini, atau model khusus plan yang belum kamu miliki.Tambahkan model ke allowlist key, atau pakai key lain.
404model_not_foundId model tidak dikenal atau sedang tidak dibuka. Nama berprefix seperti gp/… atau openai/… juga 404.Salin id persis dari daftar model.
413—Body permintaan terlalu besar untuk diterima server.Ringkas riwayat percakapan atau kecilkan lampiran.
429rate_limit_errorTerlalu banyak permintaan: kapasitas model sedang penuh, atau batas plan Unlimited/Bansos terlampaui.Tunggu sesuai Retry-After (bila ada), lalu coba lagi dengan jeda.
502api_errorLayanan model sedang sibuk atau bermasalah; request tidak ditagih.Coba lagi setelah beberapa detik, atau pakai model lain.
503api_errorModel sedang dalam pemeliharaan atau sementara tidak tersedia; request tidak ditagih.Coba lagi nanti atau pakai model lain.

Batas pemakaian

JenisBatas
Key berbayar (gk-)Tidak ada batas laju tetap per key; pemakaian dibatasi saldo GeraiPoints. 429 hanya muncul saat kapasitas model sedang penuh.
Plan UnlimitedBatas request per menit dan request bersamaan per akun. Balasan 429 membawa Retry-After dan x-ratelimit-*. Rincian di halaman Unlimited.
Tier gratis (Bansos)Kuota request per hari dan batas per menit. Balasan 429 membawa Retry-After dan x-ratelimit-*. Sisa kuota di halaman Bansos.
Ukuran & jawabanBody yang terlalu besar ditolak 413. Panjang jawaban (max_tokens) bisa diturunkan otomatis bila saldo tidak cukup untuk nilai yang diminta.
API keyMaksimal 20 key aktif per akun; allowlist hingga 64 model per key.
Kunci pelangganBatas ditegakkan sebelum request diproses: request yang akan melewati sisa batas ditolak. Batas sekali habis → 402 KEY_BATAS_HABIS (naikkan batas untuk menambah kuota); batas harian/bulanan tercapai → 429 KEY_BATAS_HARIAN / KEY_BATAS_BULANAN dengan header Retry-After. Key dijeda → 403 KEY_DIJEDA. Model -unli dan bansos tidak bisa dipakai lewat kunci pelanggan.

Mencoba ulang dengan benar

  • Coba ulang hanya untuk 429, 502, dan 503, dengan jeda yang makin panjang (mis. 1, 2, 4, 8 detik) dan batas 2–3 kali.
  • Jangan coba ulang 400, 401, 402, 403, 404 — perbaiki permintaannya dulu; hasilnya akan sama.
  • Hormati header Retry-After bila ada.
  • Setiap percobaan ulang adalah request baru yang ditagih. Kalau penyebabnya timeout di aplikasi, naikkan timeout — lihat Setelan tool agentic.