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

# Rate limits

> How rate limiting works on the Ornn Data API and how to avoid it.

## How it works

Public index and catalog routes that use the public limiter allow **60 requests per minute per IP address**.

<Tip>
  The public limiter runs before optional API-key authentication, so sending a key does not replace this limit with a per-key tier. Requests from origins configured as trusted by Ornn bypass the public limiter; this is deployment configuration, not a general client entitlement. See [Authentication](/docs/authentication) for which endpoints are public.
</Tip>

## Chat

[`POST /api/chat`](/docs/access-tiers) 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 HTTP `429 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.

<Note>
  Back off when you receive a `429`; repeated public polling should be cached client-side or moved to a server-side cache.
</Note>

## 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/all`](/docs/api-reference/current-prices/get-latest-daily-index-for-all-gpus) returns every GPU in one request instead of one call per model.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.