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

# Pagination and history

> Paging through result sets with cursors, and how far back your plan lets you read.

## Pagination

`/visibility`, `/citations`, and `/competitors` return at most **1,000 rows** per response and page with an opaque cursor. `/brands` is not paginated — it returns every brand at once.

Every paginated response carries a `pagination` block:

```json theme={null}
{
  "data": [],
  "pagination": {
    "pageSize": 1000,
    "hasMore": true,
    "nextCursor": "eyJkYXRlIjoiMjAyNi0wOC0xMiIsInVybCI6Imh0dHBzOi8vLi4uIn0"
  }
}
```

To read the next page, pass `nextCursor` back as the `cursor` parameter. Keep going until `hasMore` is `false`.

```bash theme={null}
curl -H "X-API-Key: $THIRD_API_KEY" \
  "https://app.get3rd.com/api/export/v1/citations?brandId=$BRAND&cursor=$NEXT_CURSOR"
```

<Warning>
  Do not build cursors yourself or parse what is inside one. The encoding is an implementation detail and can change without notice. Pass back exactly the string you received.
</Warning>

Keep every other parameter identical between pages. Changing `fromDate`, `toDate`, or `brandId` mid-run makes the cursor meaningless.

## Date range

`fromDate` and `toDate` accept `YYYY-MM-DD` and are both inclusive. Omit them and you get the last 30 days.

```bash theme={null}
?brandId=$BRAND&fromDate=2026-06-01&toDate=2026-06-30
```

## How far back you can read

Your plan sets the lookback window:

| Plan | History |
| - | - |
| Lite | No access |
| Pro | 90 days |
| Agency | 180 days |
| Enterprise | Full history |

<Warning>
  A request for a wider window is **silently clamped**, not rejected. You get a `200` with fewer days than you asked for.
</Warning>

Always read `meta.fromDate` in the response to see the window that was actually applied:

```json theme={null}
{
  "meta": {
    "brandId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "fromDate": "2026-06-02T00:00:00.000Z",
    "toDate": "2026-08-31T23:59:59.000Z",
    "plan": "pro"
  }
}
```

If `meta.fromDate` is later than the `fromDate` you sent, the clamp moved it.

## Backfilling

For a first load, walk the window in chunks rather than requesting your whole history in one call — a month at a time per brand keeps each run short and makes a failure cheap to retry. After that, a daily incremental pull of the last few days is enough; re-pulling a few days you already have lets late-arriving data settle.

## Related

* [Export API overview](/api-reference/introduction)
* [Errors and rate limits](/api-reference/errors)


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