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

# Rate limits

> Per-plan request quotas for the Radion API.

Paid plans have no per-second rate limit. You only have a monthly quota. The free plan also has a small per-second cap.

Limits only apply to the business endpoints under `/v1/*`. The auth, key, and health endpoints are free. They do not count against your monthly quota.

| Endpoint group | Per-second limit | Monthly quota | Notes               |
| -------------- | ---------------- | ------------- | ------------------- |
| Business API   | Free plan only   | Yes           | The `/v1/*` data    |
| `/auth/*`      | No               | No            | Keys and key info   |
| `/health`      | No               | No            | Public health check |

Business API requests need an API key. See [Authentication](/api/authentication) to get one.

## Quotas

| Plan       | Requests / second | Requests / month |
| ---------- | ----------------- | ---------------- |
| Free       | 5                 | 300              |
| Starter    | No limit          | 3,000            |
| Pro        | No limit          | 50,000           |
| Enterprise | No limit          | Unlimited        |

## How it works

Paid plans are not throttled per second. They only have a monthly quota.

On the free plan, the per-second limit uses a token bucket. You can spend your whole per-second budget at once as a burst. It then fills back up over the next second.

The monthly limit is a counter for the calendar month. It goes back to zero at the start of the next month, in UTC.

The monthly quota counts per account, not per key. If you have many keys on one account, they all share the same monthly quota.

## When you go over a quota

If you go over a quota, you get a `429 Too Many Requests` response with a `Retry-After` header.

```http title="Response headers" theme={null}
HTTP/1.1 429 Too Many Requests
Retry-After: 1
```

```json title="Per-second limit response" theme={null}
{
  "type": "about:blank",
  "status": 429,
  "title": "Too Many Requests",
  "detail": "Rate limit exceeded",
  "request_id": "1748123456-1a"
}
```

```json title="Monthly quota response" theme={null}
{
  "type": "about:blank",
  "status": 429,
  "title": "Too Many Requests",
  "detail": "Monthly request limit exceeded",
  "request_id": "1748123456-1a"
}
```

For per-second errors, `Retry-After` tells you how long to wait for the bucket to refill. For monthly errors, it points to the next monthly reset.

## Upgrading

To move to a higher plan, go to the [Radion dashboard](https://radion.app/dashboard).
