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

# Paginación

> Recorre listas grandes con paginación por cursor, estable ante escrituras concurrentes.

Los endpoints de listado (transacciones, etc.) paginan **por cursor**. El cursor es **opaco** — no lo
construyas ni lo interpretes; solo reenvíalo tal cual.

## Request

| Parámetro | Tipo   | Descripción                                                   |
| --------- | ------ | ------------------------------------------------------------- |
| `limit`   | número | Cuántos resultados por página (con tope).                     |
| `cursor`  | string | El `nextCursor` de la página anterior. Omítelo en la primera. |

## Respuesta

```json theme={null}
{
  "items": [ /* … */ ],
  "nextCursor": "eyJ0IjoiMjAyNi0wNy0wMSJ9"
}
```

* `items` — los resultados de esta página.
* `nextCursor` — pásalo como `cursor` para pedir la siguiente. Cuando es **`null`**, llegaste al final.

## Recorrer todo

<CodeGroup>
  ```javascript Node.js theme={null}
  let cursor
  const all = []
  do {
    const url = new URL("https://api.finzaria.com/v1/transactions")
    url.searchParams.set("limit", "100")
    if (cursor) url.searchParams.set("cursor", cursor)
    const res = await fetch(url, {
      headers: { Authorization: `Bearer ${process.env.FINZARIA_API_KEY}` },
    })
    const page = await res.json()
    all.push(...page.items)
    cursor = page.nextCursor
  } while (cursor)
  ```

  ```python Python theme={null}
  import os, requests

  items, cursor = [], None
  while True:
      params = {"limit": 100}
      if cursor:
          params["cursor"] = cursor
      page = requests.get(
          "https://api.finzaria.com/v1/transactions",
          headers={"Authorization": f"Bearer {os.environ['FINZARIA_API_KEY']}"},
          params=params,
      ).json()
      items += page["items"]
      cursor = page["nextCursor"]
      if not cursor:
          break
  ```
</CodeGroup>

<Tip>
  El cursor es estable ante inserciones: aunque se creen transacciones mientras paginas, no repites
  ni te saltas resultados (a diferencia de paginar por `offset`).
</Tip>
