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

# Rate limits

> How the Syrto API rate-limits requests, and the headers that report your budget.

Requests are rate-limited per minute. The limit applies to each endpoint independently and is set by your plan.

## Rate-limit headers

Every call to an endpoint returns your current budget:

| Header                  | Description                                         |
| ----------------------- | --------------------------------------------------- |
| `X-RateLimit-Limit`     | Your maximum requests per minute for this endpoint. |
| `X-RateLimit-Remaining` | Requests left in the current window.                |
| `X-RateLimit-Reset`     | Seconds until the budget is fully replenished.      |

The limit refills continuously rather than resetting on a fixed boundary, so `X-RateLimit-Remaining` recovers gradually between calls.

## When you exceed the limit

A request over the limit returns [`429 rate_limited`](/api/errors) with a `Retry-After` header giving the number of seconds to wait:

```json theme={null}
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded.",
    "requestId": "req_018f9c2e7b7a7c3e9a1b2c3d4e5f6a7b"
  }
}
```

Rate limiting is applied before any billing check, so a throttled request is never billed. Wait for the `Retry-After` interval, then retry.

<Tip>
  Read `X-RateLimit-Remaining` from your responses and slow down as it approaches zero, rather than waiting for a `429`.
</Tip>
