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

# Rate limits

> The daily allowance of each partner and the flight totals throttle.

## Daily allowance

Each partner has an allowance of 1,000 calls a day unless agreed otherwise. The day is the UTC day. Every authenticated call counts, including the webhook test.

Every authenticated answer carries:

* `X-RateLimit-Limit`: your daily allowance;
* `X-RateLimit-Remaining`: what is left of it after this call.

A `401`, and a path or method outside the Partner API, carry neither.

Past the allowance the API answers `429 rate_limited` with reason `rate_limited`, does nothing, and sends `Retry-After` with the HTTP date of the next UTC midnight.

## Flight totals throttle

`PUT /v1/partner/grants/{grant_id}/flight-totals` takes one accepted push per grant every 15 minutes. The server checks, in this order: a retry of the last accepted push (same `as_of`, same totals) answers `200` and applies nothing; a push whose `as_of` is older than the last accepted one answers `409` with reason `stale_totals`; and only then a NEW push inside the 15 minutes answers `429 rate_limited` with reason `push_throttled`, with `Retry-After` naming the time the next push is taken. Nothing is applied in the last two cases. Because a push is a whole state, you lose nothing by waiting and sending the current state. See the [idempotency guide](https://developers.mypilotindex.com/idempotency.md).

## Good practice

Reconcile with `GET /v1/partner/grants` (page with `next_cursor`) rather than polling each grant, and read the summary when a pilot opens your screen rather than on a timer.


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