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

# Rate limits

> Per-key rate limiting and the headers that advertise your budget

Every `/v1` request is rate-limited **per API key**, not per IP, so a key's budget is the key's, however many hosts or functions call from behind it.

## Headers on every response

The budget is advertised in two families, side by side: the widely deployed `X-RateLimit-*` and the IETF-draft `RateLimit` headers.

```http theme={null}
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 118
X-RateLimit-Reset: 47
RateLimit-Policy: 120;w=60
RateLimit: limit=120, remaining=118, reset=47
```

`Reset` is seconds until the window refills.

## Over the limit

Exceeding the budget answers `429` `wondeya.rate_limit.exceeded` with a `Retry-After` (seconds):

```http theme={null}
HTTP/1.1 429 Too Many Requests
Retry-After: 47
```

Back off until `Retry-After` elapses. A well-behaved client watches `X-RateLimit-Remaining` and slows down before it hits zero.

A `429` from the chat endpoint can instead be `wondeya.usage.budget_exceeded`, the workspace's daily activity ceiling rather than the per-key limit; it carries no `Retry-After`.
