API Rate Limits
Rate limits protect your SiteX installation from excessive API usage. Each API key has its own rate limit counters.
Default Limits
| Window | Default Limit | Configurable |
|---|---|---|
| Per minute | 60 requests | Yes (per key) |
| Per hour | 1,000 requests | Yes (per key) |
| Per day | 10,000 requests | Yes (per key) |
Rate Limit Headers
Every API response includes rate limit headers:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1710345600
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Exceeding the Limit
When a rate limit is exceeded, the API returns:
HTTP/1.1 429 Too Many Requests
Retry-After: 30
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 30 seconds.",
"status": 429
}
The Retry-After header indicates how many seconds to wait before retrying.
Customizing Limits
Rate limits can be adjusted per API key from the API Key Management page. For AI agents that publish content in batches, you may want to increase the per-minute limit.
Best Practices
- Check
X-RateLimit-Remainingbefore making requests - Implement exponential backoff when receiving 429 responses
- Batch operations where possible to reduce request count
- Use the
Retry-Afterheader to determine wait time - Cache GET responses locally to avoid unnecessary repeat requests