Format Respons Kesalahan
Semua kesalahan mengembalikan format JSON yang konsisten:Kode Status HTTP
| Kode | Deskripsi |
|---|---|
| 400 | Bad Request - Parameter tidak valid |
| 401 | Unauthorized - API key tidak valid atau hilang |
| 402 | Payment Required - Saldo tidak mencukupi |
| 403 | Forbidden - Akses ditolak atau model tidak diizinkan |
| 404 | Not Found - Model atau sumber daya tidak ditemukan |
| 413 | Payload Too Large - Ukuran input atau file terlampaui |
| 429 | Too Many Requests - Batas laju (rate limit) terlampaui |
| 500 | Internal Server Error |
| 502 | Bad Gateway - Kesalahan penyedia upstream |
| 503 | Service Unavailable - Semua saluran gagal |
| 504 | Gateway Timeout - Permintaan waktu habis (timed out) |
Tipe Kesalahan
Kesalahan Autentikasi (401)
| Tipe | Kode | Deskripsi |
|---|---|---|
invalid_api_key | invalid_api_key | API key hilang atau tidak valid |
expired_api_key | expired_api_key | API key telah dicabut |
Kesalahan Pembayaran (402)
| Tipe | Kode | Deskripsi |
|---|---|---|
insufficient_quota | insufficient_quota | Saldo akun terlalu rendah |
quota_exceeded | quota_exceeded | Batas penggunaan API key tercapai |
Kesalahan Akses (403)
| Tipe | Kode | Deskripsi |
|---|---|---|
access_denied | access_denied | Akses ke sumber daya ditolak |
access_denied | model_not_allowed | Model tidak diizinkan untuk API key ini |
Kesalahan Validasi (400)
| Tipe | Deskripsi |
|---|---|
invalid_request_error | Parameter permintaan tidak valid |
context_length_exceeded | Input terlalu panjang untuk model |
model_not_found | Model yang diminta tidak ada |
Kesalahan Batas Laju (429)
Saat Anda melampaui batas laju (rate limits):Payload Terlalu Besar (413)
Saat ukuran input atau file melampaui batas:- File gambar terlalu besar (maks 20MB)
- File audio terlalu besar (maks 25MB)
- Teks input melampaui panjang konteks model
Kesalahan Upstream (502, 503)
| Tipe | Deskripsi |
|---|---|
upstream_error | Penyedia mengembalikan kesalahan |
all_channels_failed | Tidak ada penyedia yang tersedia |
timeout_error | Permintaan waktu habis (timed out) |
Menangani Kesalahan di Python
Menangani Kesalahan di JavaScript
Praktik Terbaik
Terapkan exponential backoff
Terapkan exponential backoff
Saat terkena pembatasan laju (rate limited), tunggu lebih lama secara progresif di antara percobaan ulang:
Atur timeout
Atur timeout
Selalu atur timeout yang wajar untuk menghindari permintaan yang menggantung:
Catat log kesalahan untuk debugging
Catat log kesalahan untuk debugging
Catat log respons kesalahan lengkap termasuk ID permintaan untuk dukungan:
Tangani kesalahan spesifik model
Tangani kesalahan spesifik model
Beberapa model memiliki persyaratan khusus (misalnya, token maksimum, format gambar).
Validasi input sebelum membuat permintaan.