# Rate Limiting

API requests are rate-limited per API key using a token bucket algorithm.

## Default Limits

| Plan | Requests per Minute |
|---|---|
| Early Access | 100 |

## Response Headers

Every authenticated response includes rate limit headers:

| Header | Description |
|---|---|
| `X-RateLimit-Limit` | Maximum requests per minute for your key |
| `X-RateLimit-Remaining` | Remaining requests in the current window |
| `Retry-After` | Seconds until the next request is allowed (only on 429 responses) |

## Rate Limit Exceeded

When you exceed your rate limit, the API returns `429 Too Many Requests`:

```json
{
  "error": "rate_limited",
  "detail": "100 requests per minute",
  "retry_after_secs": 3
}
```

## Best Practices

- Cache results when the same trade parameters are being re-evaluated within a short window
- Use [batch validation](/llm/api/batch-validate.md) to validate multiple trades in a single request instead of making individual calls
- Implement exponential backoff when receiving 429 responses
