Guides
Rate limits
Limits
| Limit | Value |
|---|---|
| Requests per key | 120 per minute |
| Rows per request (find-contacts, verify, lists) | 50,000 |
| Rows per deep-search request | 10,000 |
wait on a POST | up to 30 seconds |
Page size (limit) | up to 1,000 |
| Request body | 20 MB |
Need more? Write to us; we raise limits per account.
The request limit is about calls, not rows: one request with 10,000 rows counts once. Send lists in one request instead of one request per row.
Headers
Every answer has:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117
X-RateLimit-Reset: 42X-RateLimit-Reset is the number of seconds until the minute starts over.
When you hit the limit
You get 429 rate_limited with a Retry-After header (seconds). Wait that long, then go on. Nothing is charged for a refused request.
if (response.status === 429) {
await new Promise((r) => setTimeout(r, Number(response.headers.get('retry-after')) * 1000));
// send the same request again, with the same Idempotency-Key
}