Skip to main content
Restricted access. Public API v2 is currently available only to allowlisted organizations. Requests from workspaces that have not been enabled are rejected. Contact your Reevo representative to have your organization added to the allowlist.

Rate Limits

Public API v2 is rate limited per organization. The limit is shared across every API key in your workspace, not tracked per key or per IP address.

The limit

By default, requests are limited to roughly 10 requests per second across the whole organization. Individual endpoints can carry their own tighter limit. Rate limiting is enabled by default. Exact limits are set by Reevo and can change, so treat the limit as a moving target and rely on the response headers rather than hardcoding a number.

The 429 response

When a request exceeds the limit, the API returns 429 with the standard error envelope:
{
  "status_code": 429,
  "error_type": "rate_limited",
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded",
  "details": {
    "blocking_tier": "org_global",
    "retry_after_seconds": 1
  }
}
details.blocking_tier is org_global when the organization-wide limit was hit, or org_endpoint when a specific endpoint’s limit was hit. details.retry_after_seconds tells you how long to wait.

Rate-limit headers

Successful (2xx) responses and 429 responses carry headers describing your current budget. Other error responses (for example 400, 404, 422) do not carry these headers, so do not rely on them being present on every response. Read them to stay under the limit proactively.
HeaderMeaning
RateLimit-LimitRequests allowed in the current window.
RateLimit-RemainingRequests left in the current window.
RateLimit-ResetSeconds until the window resets.
Retry-AfterSeconds to wait before retrying. Sent on 429 responses.

Handling limits

  • Honor Retry-After on a 429 before retrying. Do not retry immediately.
  • Watch RateLimit-Remaining and slow down before you hit zero.
  • Use exponential backoff with jitter when you do get a 429, so concurrent clients do not retry in lockstep.
  • Reduce concurrency and page through large result sets with _query instead of firing many parallel reads.
See Errors and Validation for the full error envelope.