# Limits

Requests are limited per key and per company; `GET /me` shows the limits in `rate_limits`. Exceeding a limit
returns `429 rate_limited` with `Retry-After` (seconds). JSON request bodies may be at most
256 KB and nested at most 32 levels deep (otherwise `400 invalid_request`
with `field` `body`). An error before the body was read closes the connection (`Connection: close`). Catalog lists
(styles, brands, voices) and the category list may show changes with a delay of up to 30 seconds.

### Fixed limits

| What | Limit |
|---|---|
| JSON request body | 256 KB, nested at most 32 levels |
| `narration_text` | 18,000 characters |
| Page size (`limit`) | 1–100, default 50 |
| Uploads | images up to 25 MB, videos up to 200 MB, kept 7 days after the last use |
| Idempotency keys | kept 24 hours by default (`GET /me` shows the current value) |
| Events | kept 180 days |

```http Too many requests
HTTP/1.1 429 Too Many Requests
Retry-After: 12
Content-Type: application/json

{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests. Retry after 12 seconds.",
    "request_id": "req_5b2e8f1a4c7d0e3b6a9f2c5d8e1b4a7c"
  }
}
```
