Rate Limiting
Cartrack Fleet API menerapkan rate limiting untuk semua API request yang masuk guna melindungi resource jaringan, menjaga performa sistem, dan memastikan pengalaman yang konsisten bagi semua pengguna.
Default Rate Limit
API memiliki default rate limit sebesar 1,000 requests per minute. Limit ini berlaku untuk sebagian besar endpoint API kecuali dinyatakan lain. Request yang melebihi limit ini akan menerima respons HTTP 429 Too Many Requests.
API Endpoint Specific Rate Limit
Beberapa endpoint API memiliki rate limit yang lebih ketat untuk memastikan fairness dan mencegah abuse. Berikut limit spesifik untuk endpoint tersebut:
| Endpoint | Rate Limit | Description |
|---|---|---|
| POST /fuel/consumed | 10 requests per minute | Mengambil estimasi fuel used untuk banyak kendaraan. |
| POST /fuel/level | 10 requests per minute | Mengambil data sensor fuel consumed untuk banyak kendaraan. |
| POST /vehicles/ev-consumption | 10 requests per minute | Mengambil konsumsi baterai untuk banyak kendaraan listrik. |
| POST /vehicles/range | 10 requests per minute | Mengambil event laporan range EV untuk banyak kendaraan listrik. |
| POST /vehicles/soc | 10 requests per minute | Mengambil event state of charge (SoC) untuk banyak kendaraan listrik. |
| GET /vehicles/vext | 10 requests per minute | Mengambil data VEXT kendaraan terlepas dari status ignition. |
Untuk endpoint dengan limit spesifik, melebihi limit juga akan menghasilkan respons HTTP 429 Too Many Requests.
Perilaku Retry
Jika Anda menerima respons HTTP 429 Too Many Requests, Anda harus mematuhi header yang ada pada respons. Header ini memberikan informasi kapan Anda bisa retry:
X-RateLimit-Retry-At: Timestamp earliest retry berikutnya.X-RateLimit-Retry-After-Seconds: Jumlah detik hingga earliest retry berikutnya.
Contoh Respons
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
X-RateLimit-Retry-At: 1737592000
X-RateLimit-Retry-After-Seconds: 15
{
"error": {
"code": 429,
"message": "Too many requests. Please wait before retrying."
}
}
Cara menangani 429 Too Many Requests
- Wait and Retry: Patuhi header
X-RateLimit-Retry-AtdanX-RateLimit-Retry-After-Secondsuntuk menunggu waktu yang direkomendasikan sebelum retry. - Exponential Backoff: Implementasikan exponential backoff dengan jitter agar tidak terjadi pelanggaran limit berulang.
Catatan: Pelanggaran rate limit berulang dapat menyebabkan pembatasan akses sementara atau permanen.
Meningkatkan limit
Jika aplikasi Anda membutuhkan rate limit yang lebih tinggi, Anda dapat mengajukan permintaan peningkatan limit. Permintaan akan dievaluasi case-by-case untuk memastikan kompatibilitas dengan infrastruktur kami. Limit yang disetujui akan disesuaikan dan dikomunikasikan sesuai ketentuan.