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

# Limits & quotas

> One reference for every cap — page sizes, batch inputs, rate limits, tracking quotas, and scrape cadence.

This page collects the caps that apply across the API in one place. Where a limit
has its own dedicated page, you'll find a link to it.

## Pagination `limit`

List endpoints page with a `cursor` and a `limit`. The allowed range depends on
the endpoint:

| Endpoint group      | `limit` range | Default |
| ------------------- | ------------- | ------- |
| Most list endpoints | `1`–`200`     | `50`    |
| `GET /search`       | `1`–`25`      | `10`    |
| `GET /creators/top` | `1`–`25`      | `10`    |

Stop paging when `pagination.has_next` is `false`. Each endpoint's reference page
lists its exact range. See [Pagination](/api-reference/pagination).

<Tip>
  Use the largest sensible `limit` to fetch a collection in fewer round trips — it's one
  of the easiest ways to stay under your rate limit.
</Tip>

## Batch metrics input size

The batch endpoints — `POST /accounts/metrics`, `POST /videos/metrics`, and
`POST /account-videos/metrics` — fetch windowed metrics for many IDs in a single
call instead of one request per resource.

You can pass many IDs per call, but very large sets should be chunked into several
requests so each one stays responsive and within your rate limit. If you exceed an
endpoint's accepted input, you'll get a `422` with `code: VALIDATION_ERROR` — read
the `detail` to see the bound. See [Errors](/api-reference/errors).

## Rate limits

Requests are rate limited per API key. CreatorAudit does **not** publish specific
numeric limits — read the headers on each response rather than hard-coding a value:

| Header                  | Meaning                                          |
| ----------------------- | ------------------------------------------------ |
| `X-RateLimit-Limit`     | Your ceiling for the current window.             |
| `X-RateLimit-Remaining` | Requests left in the current window.             |
| `X-RateLimit-Reset`     | Unix timestamp (seconds) when the window resets. |

When you exceed the limit you get a `429`; back off and retry. See
[Rate limits](/api-reference/rate-limits) for the full pattern.

## Tracking quota

Each organization can set an optional cap on the number of accounts it tracks.

<Note>
  By default there is **no cap** — tracking is unlimited. A cap only applies when your
  plan or workspace sets one.
</Note>

When a cap is set and reached, `POST /accounts` returns `403` with
`code: QUOTA_EXCEEDED`:

```json theme={null}
{
  "type": "urn:creatoraudit:error:quota-exceeded",
  "title": "Forbidden",
  "status": 403,
  "detail": "Account quota reached.",
  "code": "QUOTA_EXCEEDED",
  "instance": "/v2/accounts"
}
```

If you hit it, untrack accounts you no longer need or review your plan. Check
current usage on [Usage](/dashboard/usage).

## Scrape cadence

Tracked accounts and individual videos refresh on a schedule rather than in real
time. The cadence is configurable:

| Field                   | Applies to       | Range           | Default |
| ----------------------- | ---------------- | --------------- | ------- |
| `scrape_interval_hours` | accounts, videos | `6`–`720` hours | `24`    |

The organization default applies unless you set a per-account or per-video
override when you track the resource or update it later. `last_scrape_time` stays
`null` until the first successful refresh. See
[Data freshness](/data-freshness).
