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

# Rate limits

> Request limits and the headers Wave returns.

Wave rate-limits API requests to **60 requests per minute per key** (a 60-second rolling window). Exceeding it returns **`429`** with `error_code: RATE_LIMIT_EXCEEDED` in the standard [error envelope](/errors).

## Headers

Every response includes the current rate-limit state:

| Header                  | Description                                 |
| ----------------------- | ------------------------------------------- |
| `x-ratelimit-limit`     | Max requests in the window (`60`).          |
| `x-ratelimit-remaining` | Requests left in the window.                |
| `x-ratelimit-reset`     | Seconds until the window resets.            |
| `retry-after`           | (on `429`) Seconds to wait before retrying. |

## Handling `429`

Back off and retry after the window resets:

```javascript theme={null}
if (res.status === 429) {
  const wait = Number(res.headers.get("retry-after") ?? 1) * 1000;
  await new Promise((r) => setTimeout(r, wait));
  // retry…
}
```

<Note>
  The 60/min limit applies to sandbox keys today. Production tiers may get higher limits when the upgrade flow ships.
</Note>
