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 |
Provide an API key (even a free-tier key) to get significantly higher limits.
Authenticated Endpoints (API Key Required)
When using an API key, two limits apply:
- Per-minute rate limit — prevents burst abuse
- 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 |
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:
{
"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.