Rate Limit & Error
Pelajari tentang rate limiting, kode error, dan praktik terbaik untuk menangani error pada Kode Pos API.
Rate Limiting
Untuk menjaga stabilitas layanan, Kode Pos API menerapkan rate limit global. Berikut detailnya:
100 request per menit per akun
Berlaku untuk semua antarmuka — REST API, GraphQL API, dan MCP Server
Contoh Response 429
Jika rate limit terlampaui, API mengembalikan response berikut dengan field retryAfter yang menunjukkan waktu tunggu dalam detik:
Ketika Rate Limit Terlampaui
Jika Anda melebihi batas rate limit, API akan mengembalikan HTTP status 429 dengan error code RATE_LIMIT_EXCEEDED:
Kode Error
Berikut adalah daftar lengkap kode error yang mungkin dikembalikan oleh API:
| HTTP Status | Error Code | Deskripsi |
|---|---|---|
400 | BAD_REQUEST | Parameter query tidak valid atau request salah format |
401 | AUTHENTICATION_REQUIRED | Autentikasi diperlukan — sertakan header Authorization: Bearer |
401 | INVALID_API_KEY | API key tidak valid atau sudah dicabut |
402 | INSUFFICIENT_CREDITS | Kredit habis — perlu top up untuk melanjutkan |
404 | NOT_FOUND | Resource yang diminta tidak ditemukan |
422 | VALIDATION_ERROR | Validasi input gagal |
429 | RATE_LIMIT_EXCEEDED | Terlalu banyak request — coba lagi nanti |
500 | INTERNAL_ERROR | Kesalahan server tak terduga |
Contoh Error Response
Berikut adalah contoh response untuk setiap jenis error:
BAD_REQUEST
AUTHENTICATION_REQUIRED
INVALID_API_KEY
INSUFFICIENT_CREDITS
NOT_FOUND
VALIDATION_ERROR
RATE_LIMIT_EXCEEDED
INTERNAL_ERROR
Praktik Terbaik
Untuk menangani error dengan efektif, ikuti praktik terbaik berikut:
1. Gunakan Exponential Backoff
Saat menerima error 429 atau 500, jangan langsung mencoba lagi. Gunakan exponential backoff — tunggu dengan durasi yang meningkat secara eksponensial di setiap percobaan ulang.
2. Periksa retryAfter pada Error
Saat menerima error 429, response body mengandung field error.retryAfter yang menunjukkan waktu tunggu dalam detik. Gunakan nilai ini untuk menentukan kapan harus mencoba lagi.
3. Tangani Error Spesifik
Jangan hanya memeriksa HTTP status code — periksa juga error.code dalam response body untuk menentukan tindakan yang tepat. Misalnya, INSUFFICIENT_CREDITS memerlukan top up, sementara RATE_LIMIT_EXCEEDED hanya memerlukan tunggu.
4. Cache Response
Data kode pos relatif statis — cache response API di sisi klien untuk mengurangi jumlah request yang tidak perlu. Pertimbangkan menggunakan cache dengan TTL 24 jam untuk data yang jarang berubah.
Jika Anda memerlukan rate limit yang lebih tinggi, silakan hubungi admin untuk penyesuaian.