> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.fluveo.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.fluveo.com/_mcp/server.

# Pagination

Every list endpoint returns the Stripe list envelope:

```json
{
  "object": "list",
  "url": "/v1/payment_intents",
  "has_more": true,
  "data": [ { "id": "pi_...", "object": "payment_intent" } ]
}
```

* `data` — up to `limit` objects.
* `has_more` — whether more objects exist beyond this page.
* `url` — the canonical path of the list.

## Cursor parameters

| Parameter        | Type           | Meaning                                                             |
| ---------------- | -------------- | ------------------------------------------------------------------- |
| `limit`          | integer, 1–100 | Page size.                                                          |
| `starting_after` | object id      | Return objects **after** this id — the cursor for paging forward.   |
| `ending_before`  | object id      | Return objects **before** this id — the cursor for paging backward. |

To page forward: request a page, then pass the `id` of the **last** object in
`data` as `starting_after`, and repeat until `has_more` is `false`.

```bash
curl -G https://api.devfluveo.com/v1/payment_intents \
  -u sk_test_123: \
  -d limit=100

# next page: cursor = id of the last object in data
curl -G https://api.devfluveo.com/v1/payment_intents \
  -u sk_test_123: \
  -d limit=100 \
  -d starting_after=pi_3Nk8AzB2xQRH9Jf
# repeat until has_more is false
```

> **Warning**
>
> **Prefer `starting_after` everywhere.** Backward pagination with
> `ending_before` is not yet supported on some list endpoints — currently the
> Refunds and Charges lists — where it returns a `400 invalid_request_error`.
> Forward pagination with `starting_after` works on every list endpoint.

Cursors are merchant-scoped: an unknown or cross-merchant cursor returns
`invalid_request_error` and never leaks another merchant's rows.

For a complete worked example — a curl loop that walks every page with
`starting_after` — see the
[paginate balance transactions cookbook](/cookbooks/paginate-balance-transactions).