Tentang Rate Limit or RPS
API Rate Limit merupakan fitur yang membatasi jumlah request API yang dapat dibuat oleh user ataupun suatu Akun Xendit dalam periode waktu tertentu yang spesifik.
Mengapa Xendit Mengimplementasikan Rate Limit?
- Untuk mencegah adanya penggunaan API yang berlebihan dan termasuk kedalam tindak kejahatan.
- Untuk memastikan bahwa seluruh customer memiliki akses yang setara terhadap resources yang tersedia pada API Xendit.
Berapa Limit dari API Request pada Xendit?
- Pada Mode Test, Rate API Limit ada di maksimal 600 request per menit (RPM) untuk 1 endpoint per akun
- Pada Mode Live, Rate API Limit ada di maksimal 6000 request per menit (RPM) untuk 1 endpoint per akun
Di bawah ini merupakan detail lebih lanjut dari bagaimana Rate Limit bekerja pada response header saat Anda melakukan request API:
Header Response | Contoh Nilai (request per menit) | Deskripsi |
Rate-Limit-Limit | 6000 | Kuota permintaan pada setiap jendela waktu |
Rate-Limit-Remaining | 5839 | Sisa kuota permintaan pada jendela waktu sekarang |
Rate-Limit-Reset | 58.379 | Waktu tersisa pada jendela waktu sekarang, didefinisikan dalam detik |
Jika Anda melebihi Rate Limit untuk sebuah endpoint, Anda akan menerima kode status HTTP 429 (Too Many Requests) dengan kode kesalahan RATE_LIMIT_EXCEEDED
.
Penting untuk menangani kesalahan ini dan kontrol/tunda permintaan Anda sampai kuota Rate Limit terisi kembali.
Tips Penggunaan Rate Limit
Berikut adalah beberapa praktik terbaik untuk menangani Rate Limit API dengan lancar sebagai klien:
- Implementasikan Rate Limit di aplikasi Anda: Penting untuk mengimplementasikan Rate Limit di aplikasi Anda sendiri agar tidak melebihi Rate Limit API. Ini dapat dilakukan dengan melacak jumlah permintaan yang dibuat dan waktu pembuatan mereka, serta membandingkannya dengan kebijakan Rate Limit API.
- Tangani kesalahan Rate Limit: Jika Anda menerima kode status HTTP 429 (Too Many Requests) dengan kode kesalahan
RATE_LIMIT_EXCEEDED
, penting untuk menangani kesalahan ini dengan lancar di aplikasi Anda. Salah satu cara untuk melakukannya adalah dengan mencoba meminta ulang setelah selang waktu tertentu telah berlalu, untuk memberi kuota Rate Limit kesempatan untuk terisi kembali. - Gunakan backoff eksponensial: Anda dapat implementasi backoff eksponensial saat mencoba meminta ulang setelah kesalahan Rate Limit. Ini berarti meningkatkan jumlah waktu yang Anda tunggu antara cobaan ulang dengan faktor dua (atau kelipatan lainnya) setiap kali Anda menerima kesalahan Rate Limit. Misalnya, Anda mungkin mencoba meminta ulang setelah 1 detik, kemudian 2 detik, kemudian 4 detik, dan seterusnya. Ini membantu mengurangi risiko membebani API dengan terlalu banyak cobaan ulang dalam jangka waktu yang sangat singkat.
- Gunakan caching: Menyimpan hasil permintaan API secara lokal dapat membantu mengurangi jumlah permintaan yang dibuat ke API, serta meningkatkan performa aplikasi Anda. Dengan menyimpan hasil permintaan API secara lokal dan menggunakannya kembali sampai mereka menjadi kedaluwarsa, Anda dapat mengurangi kebutuhan untuk membuat permintaan sering ke API. Dengan mengikuti praktik terbaik ini, Anda dapat membantu menjamin bahwa aplikasi Anda menangani Rate Limit dengan lancar dan memberikan pengalaman yang andal dan konsisten untuk pengguna Anda.
Kami dapat mengurangi Rate Limit untuk mencegah penyalahgunaan, atau menaikkan limit untuk aplikasi yang mempunyai traffic tinggi. Untuk meningkatkan Rate Limit untuk akun Anda, Anda dapat menghubungi kami melalui email api.xendit.co 4 minggu lebih awal dengan menyediakan informasi Business ID Anda. Kami akan meninjau permintaan Anda dan mungkin dapat meningkatkan batas tergantung pada kebutuhan aplikasi Anda dan penggunaan keseluruhan API.
Selengkapnya mengenai Rate Limit pada Xendit dapat diakses pada Dokumentasi API Reference kami di sini.