> ## Documentation Index
> Fetch the complete documentation index at: https://help.reevo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits

> Understand Public API v2 rate limits, the 429 response, rate-limit headers, and retry strategy.

<Warning>
  **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.
</Warning>

# 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:

```json theme={null}
{
  "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.

| Header                | Meaning                                                   |
| :-------------------- | :-------------------------------------------------------- |
| `RateLimit-Limit`     | Requests allowed in the current window.                   |
| `RateLimit-Remaining` | Requests left in the current window.                      |
| `RateLimit-Reset`     | Seconds until the window resets.                          |
| `Retry-After`         | Seconds 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`](/Public-API-v2/Pagination) instead of firing many parallel reads.

See [Errors and Validation](/Public-API-v2/Errors-and-Validation) for the full error envelope.
