Skip to content

RATE_LIMITED

More requests than the limit allows

The API allows 5 requests per second per key; each browser endpoint allows 20 lookups a minute per visitor, and the published sandbox key allows 30 a minute per address.

http status
429
credits
Nothing is billed for a failed request.

What it means

The response carries a Retry-After header with the seconds until the window resets. The request did not run and nothing was billed.

Verifying a list one address at a time is the usual cause. The batch endpoint takes 50 addresses per request and probes them concurrently; bulk jobs take up to 100,000.

The sandbox key is shared by everyone reading the documentation, so its budget is small on purpose and is counted per source address. Create a key of your own to leave it behind.

A few endpoints carry a cap of their own on top of that one, and the bulk webhook redeliveries are the ones to know about: ten a minute, counted per signed-in user rather than per key, and shared by all five products and by the dashboard button beside each run — because every call queues a real signed POST at a server of yours.

What to do

Wait for Retry-After, then resend. For lists, switch to the batch or bulk endpoint instead of tightening a client-side loop.

Example response

{
    "success": false,
    "error": {
        "code": "RATE_LIMITED",
        "message": "Too many requests. Retry after the limit resets.",
        "request_id": "req_01m1kgdm4xngzmbmff68g94w0c"
    }
}

Every error carries the request_id also sent in the X-Request-Id header; quote it when writing to support.

Related

markdown version: /docs/errors/RATE_LIMITED.md