# Paging (https://sellersheetai.com/docs/mcp-api/paging)

> A list tool returns one page and a token for the next. Calling again is your agent's step — or your loop's.



Amazon answers long lists one page at a time, and so does every SellerSheet tool that wraps such a list. A result never tells your agent to "call again" — the tool's description says how it pages, and the agent decides whether it needs the next page.

## How it works [#how-it-works]

1. Call the tool without a token — you get the first page and, when there is more, a token in `data` (Amazon's own name for it, such as `nextToken`).
2. Call the same tool with the same arguments plus that token — you get the next page.
3. No token in the result means you have the last page.

The argument that takes the token is named in each tool's reference — usually `pagination_token` or `next_token`, sometimes the vendor's own spelling. Most list tools also take a page size, such as `page_size`.

<ToolCall tool="orders_searchOrders" args="{ created_after: &#x22;2026-10-01T00:00:00Z&#x22;, pagination_token: &#x22;<data.nextToken from the previous call>&#x22; }" />

## Good habits [#good-habits]

* **Pass `null`, not an empty string, for "no token".** Every optional argument accepts an explicit `null`, so your agent can start with `pagination_token: null`.
* **Keep the other arguments the same** between pages; a token belongs to its query.
* **Ask the warehouse for history.** "Every order last quarter" is one `query_report_data` call over the synced tables, with `limit` and `offset`, not hundreds of pages from Amazon — and it spends none of Amazon's rate limits. See [Synced reports](/docs/mcp-api/workflows/reports).
* **Write as you go.** For a whole catalog into a sheet, your agent appends each page to the sheet before fetching the next, so a long run never holds everything at once.
