Rate limits
Per-key request limits, the per-organization search quota, and the headers that report them.
#Limits
| Limit | Default | Scope |
|---|---|---|
| Requests per minute | 300 | Per API key |
| Requests per minute, all keys | 10,000 | Per organization |
| Requests in flight | 6,000 | Per organization |
| Searches per hour | 20 | Per organization |
The per-key requests per minute and the searches per hour can be raised for your organization; GET /v1/account reports the values that apply to you, plus the searches left this hour. There is no cap on concurrent batch jobs.
Request limits apply per API key across every enrich, search, and batch call. Submitting a batch job counts as one request no matter how many items it holds.
The search quota counts calls, not results: every POST /v1/search/* call is 1 - people, companies, jobs, posts, their Sales Navigator (people, companies) and standard (people, companies) variants - and so is every search.* operation item (Sales Navigator, standard, jobs, or posts) you send inside a POST /v1/batch job. Enrich items and every non-search operation item inside a batch don't count against it. The quota is shared per organization, across every key. A sync search call returns at most 100 results (pagination.has_more shows when more exist); for a bigger pull - up to 2,500 for people, 1,000 for companies, 500 for jobs or posts - send it as an operation item inside POST /v1/batch instead of issuing more sync searches.
Need a higher limit? Email support@uptodata.io, and for search limits specifically, put "Higher search limits" in the subject line.
#Response headers
Every authenticated business response carries:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 287
X-RateLimit-Reset: 1767225600
X-Global-RateLimit-Limit: 10000
X-Global-RateLimit-Remaining: 9987
X-Active-Requests-Limit: 6000
X-Active-Requests-Remaining: 5998The global headers count requests across every key in the organization. The active-requests headers count calls still in flight, including this one.
Search responses also carry:
X-Search-RateLimit-Limit: 20
X-Search-RateLimit-Remaining: 17
X-Search-RateLimit-Reset: 1767229200#Getting rate limited
{
"error": {
"type": "rate_limited",
"message": "Search rate limit exceeded (20 searches per hour per organization). A sync search returns at most 100 results per call - for a bigger pull, send it as a POST /v1/batch search item instead of sending more searches. Need a higher limit? Email support@uptodata.io.",
"requestId": "req_55azx1qm"
}
}The response includes a Retry-After header, in seconds. Rate-limited requests are never billed. Back off exponentially with jitter, and treat Retry-After as a floor rather than the exact wait time. See Errors for the full status table.