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

# Rate Limiting

> Understanding rate limits and quota management

# Rate Limiting

Every API request is subject to rate limits. The exact limits depend on whether you're using a public endpoint or authenticating with an API key.

## Public Endpoints (No Key Required)

The following endpoints can be called **without an API key**:

* `GET /api/v1/quotes/random`
* `GET /api/v1/quotes/daily`

Public requests are rate-limited **per IP address**:

| Limit      | Value |
| ---------- | ----- |
| Per minute | 10    |
| Per day    | 100   |

<Tip>
  Provide an API key (even a free-tier key) to get significantly higher limits.
</Tip>

## Authenticated Endpoints (API Key Required)

When using an API key, two limits apply:

1. **Per-minute rate limit** — prevents burst abuse
2. **Monthly quota** — total requests allowed per billing period

### Limits by Plan

| Plan          | Requests/Minute | Monthly Quota |
| ------------- | --------------- | ------------- |
| Free          | 30              | 5,000         |
| Supporter     | 60              | 50,000        |
| Pro Supporter | 200             | 500,000       |
| Custom        | 1,000           | 5,000,000     |

## Response Headers

Every API response includes rate limit headers:

```
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1714564860
X-Monthly-Quota-Limit: 50000
X-Monthly-Quota-Remaining: 47823
```

## Handling 429 Responses

When rate-limited, the API returns a `429 Too Many Requests` response with a `Retry-After` header:

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "You have exceeded your rate limit of 60 requests per minute.",
    "details": {
      "limit": 60,
      "reset_at": "2026-05-01T12:01:00Z"
    }
  }
}
```

**Best practice:** Check the `X-RateLimit-Remaining` header and implement backoff before hitting the limit.
