Lewati ke konten utama

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:

EndpointRate LimitDescription
POST /fuel/consumed10 requests per minuteMengambil estimasi fuel used untuk banyak kendaraan.
POST /fuel/level10 requests per minuteMengambil data sensor fuel consumed untuk banyak kendaraan.
POST /vehicles/ev-consumption10 requests per minuteMengambil konsumsi baterai untuk banyak kendaraan listrik.
POST /vehicles/range10 requests per minuteMengambil event laporan range EV untuk banyak kendaraan listrik.
POST /vehicles/soc10 requests per minuteMengambil event state of charge (SoC) untuk banyak kendaraan listrik.
GET /vehicles/vext10 requests per minuteMengambil 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-At dan X-RateLimit-Retry-After-Seconds untuk 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.