Lewati ke konten

Batas Laju

Permintaan API dibatasi per kunci API, per grup endpoint:

EndpointBatas
GET /v1/products · GET /v1/balance · GET /v1/api-key · GET /v1/tasks/{token} · GET /v1/tasks/{token}/result · GET /v1/tasks/{token}/download60 permintaan / menit per API key (120 / menit per IP)
POST /v1/detect · POST /v1/detect/file10 permintaan / menit per API key (30 / menit per IP)
POST /v1/realtime/check/{series} · POST /v1/realtime/detectToken bucket per API key: burst 60, isi ulang 1/detik (≈60 / menit berkelanjutan); per akun: burst 120, isi ulang 2/detik. Lapisan IP mengizinkan 180 / menit. Setiap respons menyertakan header X-RateLimit-Remaining.

Header yang Anda terima bergantung pada lapisan yang menjawab, dan ketiga grup tidak berperilaku sama:

HeaderArtiKapan muncul
X-RateLimit-RemainingPermintaan (atau token) tersisa di jendela saat iniSetiap respons di ketiga grup
X-RateLimit-LimitBatas atas yang diterapkanDi setiap respons umum dan deteksi, serta setiap 429 dari lapisan IP. Tidak pernah pada respons realtime — realtime memakai bucket, jadi tidak ada batas tetap
Retry-AfterDetik untuk menunggu sebelum mencoba ulangHanya pada 429
X-RateLimit-ResetTimestamp Unix saat jendela diresetHanya pada 429 dari grup umum atau deteksi; tidak pernah dari realtime maupun lapisan IP

X-RateLimit-Remaining adalah satu-satunya header yang bisa diandalkan tanpa syarat, dan satu-satunya yang dilaporkan realtime saat berhasil.

Saat batas terlampaui, API mengembalikan 429 dengan header Retry-After (respons realtime juga menyertakan field retry_after). Hentikan permintaan selama jumlah detik yang disebutkan, lalu lanjutkan dengan exponential backoff.

{
"message": "Too many requests. Limit: 60/min."
}
Retry-After: 12
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0