Integration guides
Rate limits
NewLast verified
The requests per minute of each plan, the daily profile cap of the Go, Plus and Max plans, and how to handle a 429.
Every workspace has a rate limit: the number of requests per minute the API accepts from it, all API keys together. The limit depends on your plan. The Go, Plus and Max plans also cap the profiles they deliver each day. Past a limit, the API returns 429 Too Many Requests, charges 0 credits, and tells you when to retry.
Rate limit by plan
| Plan | Requests per minute | To go higher |
|---|---|---|
| Free trial | 50 | Buy credits or a plan: the limit moves to 100. |
| Pay as you go | 100 | Take a Go, Plus or Max plan from Billing, then add 200 or 500 as a paid monthly add-on. Or contact sales. |
| Go, Plus and Max | 100 included | Add 200 or 500 requests per minute as a paid monthly add-on, from Billing. |
| Enterprise | Set in your contract, from 1,000 | Contact sales. |
A workspace on an older credit subscription keeps the limit set with its subscription. Buying credits never lowers a limit you already have.
Your current limit is shown on the Billing page and in quotas.minuteRateLimit.limit, returned with every successful response.
How requests are counted
- One count per workspace. Every API key, the MCP server, the CLI and the dashboard draw from the same limit.
- Per calendar minute. The count starts again at the top of each minute, given in
nextReset. - One request counts once, whatever it costs. A free Check or count request counts. A search page counts once, however many profiles it returns. The request that creates an async job counts once.
- Dashboard bulk work leaves room for your API calls. A bulk enrichment or a search export started from the dashboard takes at most 80% of the limit, so your API calls always keep at least 20% of it.
These requests do not count:
GET /v2/usage,GET /v2/flagsand the Searchavailable-fieldsendpoints- Polling an async job with
GET /v2/webhooks/:webhookId - The callbacks we send to your
webhookUrl - The model turns of the Agent (its tool calls do count, like any API call)
Daily profile cap of the Go, Plus and Max plans
A Go, Plus or Max plan delivers at most 100,000 profiles per workspace per calendar day (UTC), as set out in the Terms of Service.
- What counts: each profile your plan delivers at no credit cost, through the API, the MCP server, the CLI or the dashboard. A search page of 100 profiles counts 100, and the same profile delivered twice counts twice. A
404, an empty page, a Check or a count request counts 0. - What does not count: calls paid in credits, such as a live fetch, Find Email, Find Phone or any call your plan does not cover. They keep working once the cap is reached.
- Past the cap: the calls your plan covers return
429with the codeDAILY_EXTRACTION_LIMIT_EXCEEDEDuntil 00:00 UTC.error.details.resetAtgives that moment.
The rate limit add-on does not raise the cap. Free trial, Pay as you go and Enterprise workspaces have no profile cap.
An Enterprise contract can set a daily request limit instead. quotas.dailyLimit shows it (null when there is none), and past it the API returns 429 with the code DAILY_LIMIT_EXCEEDED until the time in nextReset.
Limits per API key
You can cap one API key below the workspace limit, per minute or per day, for example to keep a test integration from using the whole budget. A request refused by its key's own limit does not count toward the workspace limit. See API key management.
Read your usage
The quotas object of every successful response shows where you stand in the current minute:
Rate limit usage
"minuteRateLimit": {
"limit": 100,
"used": 98,
"left": 2,
"nextReset": "2026-10-26T09:31:00.000Z"
}left is what you can still send this minute, and nextReset is when the count starts again. GET /v2/usage returns the same object without counting toward the limit.
When you hit the limit
The API returns 429 Too Many Requests with the code RATE_LIMIT_EXCEEDED. The request costs 0 credits.
429 response
{
"success": false,
"data": null,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded: 100 requests per 60s. Retry after 12s",
"details": {
"limit": 100,
"retryAfter": 12
}
}
}The response also carries two headers: Retry-After, the seconds to wait, and X-RateLimit-Reset, the moment the limit resets as a Unix timestamp. Wait the number of seconds in error.details.retryAfter, then retry. See Error handling & retries.
For a long job, such as a large file or a nightly sync, pace your requests below your limit rather than waiting for a 429: at 100 requests per minute, send one request every 600 ms at most. Read left in quotas.minuteRateLimit to slow down before you reach 0.
FAQ
What is the Reverse Contact API rate limit?
The Reverse Contact API accepts 50 requests per minute on the free trial and 100 on Pay as you go and on the Go, Plus and Max plans. A Go, Plus or Max plan can raise it to 200 or 500 with a paid monthly add-on, and an Enterprise contract sets its own limit, from 1,000 requests per minute. The limit applies per workspace, all API keys together.
How do I get a higher rate limit?
On a Go, Plus or Max plan, add 200 or 500 requests per minute as a paid monthly add-on from the Billing page of the Reverse Contact dashboard. The add-on comes with a plan: a Pay as you go workspace takes a Go, Plus or Max plan first. Above 500 requests per minute, or for a higher limit without a plan, contact Reverse Contact sales.
What happens when I exceed the Reverse Contact rate limit?
The Reverse Contact API returns 429 Too Many Requests with the code RATE_LIMIT_EXCEEDED and charges 0 credits. error.details.retryAfter and the Retry-After header give the number of seconds to wait before retrying.
Do webhook callbacks and polling count toward the rate limit?
No. The callbacks Reverse Contact sends to your webhookUrl, polling GET /v2/webhooks/:webhookId, GET /v2/usage, GET /v2/flags and the Search available-fields endpoints do not count toward the per-minute rate limit. The request that creates an async job counts once.
Is there a daily limit on the Reverse Contact API?
The Go, Plus and Max plans deliver at most 100,000 profiles per workspace per calendar day (UTC), counted on the calls the plan covers. Past that cap, those calls return 429 with DAILY_EXTRACTION_LIMIT_EXCEEDED until 00:00 UTC, while calls paid in credits keep working. Free trial and Pay as you go workspaces have no daily cap.