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

# Paginación

> Navega por grandes conjuntos de resultados con paginación basada en páginas

# Paginación

Todos los endpoints de listado devuelven resultados paginados. Usa los parámetros `page` y `limit` para controlar qué porción de datos recibes.

## Parámetros de Consulta

| Parámetro | Tipo | Default | Descripción |
| - | - | - | - |
| `page` | integer | `1` | Número de página (inicia en 1) |
| `limit` | integer | `25` | Items por página (máximo `100`) |

## Estructura de la Respuesta

Cada respuesta paginada incluye un objeto `pagination`:

```json theme={null}
{
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 25,
    "total_pages": 4,
    "total_items": 100,
    "has_more": true
  }
}
```

| Campo | Descripción |
| - | - |
| `page` | Número de página actual |
| `limit` | Items por página (según lo solicitado) |
| `total_pages` | Número total de páginas disponibles |
| `total_items` | Número total de items en todas las páginas |
| `has_more` | `true` si hay más páginas después de la actual |

## Iterar Todas las Páginas

Usa el campo `has_more` para saber cuándo detenerte:

<CodeGroup>
  ```python Python theme={null}
  import httpx

  BASE_URL = "https://api.ya.onl/v1/orders"
  HEADERS = {"X-API-Key": "yv_live_v1_tu_api_key"}

  all_orders = []
  page = 1

  while True:
      response = httpx.get(BASE_URL, params={"page": page, "limit": 100}, headers=HEADERS)
      body = response.json()
      all_orders.extend(body["data"])

      if not body["pagination"]["has_more"]:
          break
      page += 1

  print(f"Fetched {len(all_orders)} orders")
  ```

  ```javascript Node.js theme={null}
  const BASE_URL = "https://api.ya.onl/v1/orders";
  const HEADERS = { "X-API-Key": "yv_live_v1_tu_api_key" };

  const allOrders = [];
  let page = 1;
  let hasMore = true;

  while (hasMore) {
    const response = await fetch(`${BASE_URL}?page=${page}&limit=100`, {
      headers: HEADERS,
    });
    const body = await response.json();
    allOrders.push(...body.data);
    hasMore = body.pagination.has_more;
    page++;
  }

  console.log(`Fetched ${allOrders.length} orders`);
  ```
</CodeGroup>

## Límites

* El valor máximo de `limit` es **100**. Solicitar más de 100 devuelve un error `400 Bad Request`.
* Los números de página inician en **1**. Solicitar página 0 o un número negativo devuelve un error de validación.


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