Docs / Guides
Rate limits
Default per-minute limits on task submission and result polling, what a rate-limit refusal looks like, and how to back off without losing throughput.
Defaults
- 60 submissions per minute per account. Every key of the account shares this window.
- 120 submissions per minute per API key. An account holds one prepaid key, so the account window of 60 is the one you meet first.
Windows are fixed, aligned to the clock minute, and counted per service — one captcha, with its proxy and proxyless names sharing the window — so traffic on one captcha never consumes another’s allowance. Accounts with a specific agreement can have different per-minute limits, a daily quota or a cap on concurrent tasks; the defaults above apply unless you were told otherwise. A refusal for any of these looks the same.
What a refusal looks like
Over the limit — or when the solve queue is momentarily saturated — the submission is refused with the standard envelope:
{
"errorId": 1,
"errorCode": "ERROR_NO_SLOT_AVAILABLE",
"errorDescription": "Rate limit exceeded. (retry in 4s)"
}
Nothing is charged and no task is created when a submission is refused this way: the
limits run before the task exists. The (retry in Ns) hint is a suggestion to wait
that long — there is no Retry-After header, because the refusal is an HTTP 200 reply.
Backing off
- Wait for the hinted interval, then retry once. Do not retry in a tight loop: while the window is full every attempt is refused, so the loop only wastes requests.
- Add jitter when several workers submit for one account, so their retries do not line up.
- Treat repeated refusals as a signal to reduce concurrency on your side, not to raise it.
- Spread work sensibly: the windows are per service, so a mix of captchas has more room than one captcha alone. Extra keys do not help — the account window is shared.
Polling
Use POST /getTaskResult every 3 seconds. The per-minute windows above count
submissions; polling is not metered by them, but polling faster than a solve can
finish only produces processing answers. Stop polling on the first errorId: 1.
Related
- Errors — the full code catalogue
- Task lifecycle — statuses and retention
- Billing & packages — what a refused submission does not cost