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

# Rate limits

> Request and search limits, the 429 response, and how to retry.

> Agents: the full documentation index is at [/llms.txt](https://docs.revcenter.ai/llms.txt).

Limits are set per workspace. The defaults:

| Limit | Default |
| - | - |
| Requests per key | 60 a minute |
| Requests per workspace (all its keys together) | 120 a minute |
| Searches running at once | 2 |
| Searches started in 24 hours | 20 |
| Active keys | 5 |

Your workspace's limits and today's use are under **Settings → Usage → API**. For higher limits, talk to your
Revcenter contact.

## Headers

Responses to authenticated requests carry the tightest of the key and workspace limits:

| Header | Meaning |
| - | - |
| `x-ratelimit-limit` | Requests allowed this minute |
| `x-ratelimit-remaining` | Requests left this minute |
| `x-ratelimit-reset` | When the minute resets, in Unix seconds |

## When a limit is reached

The response is `429` with a `Retry-After` header in seconds and the usual [error body](/guides/errors):

```http theme={null}
HTTP/1.1 429 Too Many Requests
retry-after: 23
x-ratelimit-limit: 60
x-ratelimit-remaining: 0
x-ratelimit-reset: 1760620800
```

```json theme={null}
{
  "error": { "code": "rate_limited", "message": "Rate limit exceeded for this key or workspace." },
  "meta": { "request_id": "6f1c2b7e-9a3d-4c5f-8e21-0b7d4a9c1e33" }
}
```

| Code | Means | `Retry-After` |
| - | - | - |
| `rate_limited` | Too many requests this minute | Seconds until the minute resets |
| `concurrent_search_limit` | The workspace's searches running at once are at the limit | 60 |
| `daily_search_limit` | The workspace started its limit of searches in the last 24 hours | 3600 |
| `network_busy` | Revcenter is busy with other searches right now | 60 |

The search limits are checked when launching a live search or an expansion; database-only searches skip them.
A refused launch uses no credit.

## Retrying

* Wait for `Retry-After`, then retry. If it is missing, wait until `x-ratelimit-reset`. Back off if it happens again.
* Launch searches with an `Idempotency-Key`, so a retry returns the same search and never uses a second credit.
* Poll a running search every 10 to 30 seconds; see [async jobs](/guides/async-jobs).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.