How it works
Public index and catalog routes that use the public limiter allow 60 requests per minute per IP address.Chat
POST /api/chat is the exception, because each call spends model tokens rather than serving a stored row. It allows 20 messages per minute per key, not per IP — so rotating addresses does not widen it, and a key is metered as one caller wherever it calls from. Its 429 body states the 20-message allowance and carries the same Retry-After header.
When you exceed the limit
After the enforced allowance is exhausted, the limiter returns HTTP429 Too Many Requests with a JSON body stating the allowance it enforced — 60 requests per minute for the public limiter. Use the response’s Retry-After header to determine how many seconds to wait before retrying.
Back off when you receive a
429; repeated public polling should be cached client-side or moved to a server-side cache.Avoiding rate limits
- Cache values you read repeatedly. The GPU index only updates hourly, so there’s no benefit to polling faster than that.
- Batch where possible. For example,
GET /api/daily-index/allreturns every GPU in one request instead of one call per model.

