> ## 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.

# Paginação

> Navegue por grandes conjuntos de resultados com paginação baseada em páginas

# Paginação

Todos os endpoints de listagem retornam resultados paginados. Use os parâmetros `page` e `limit` para controlar qual porção de dados você recebe.

## Parâmetros de Consulta

| Parâmetro | Tipo | Padrão | Descrição |
| - | - | - | - |
| `page` | integer | `1` | Número da página (inicia em 1) |
| `limit` | integer | `25` | Itens por página (máximo `100`) |

## Estrutura da Resposta

Cada resposta paginada inclui um objeto `pagination`:

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

| Campo | Descrição |
| - | - |
| `page` | Número da página atual |
| `limit` | Itens por página (conforme solicitado) |
| `total_pages` | Número total de páginas disponíveis |
| `total_items` | Número total de itens em todas as páginas |
| `has_more` | `true` se há mais páginas após a atual |

## Iterar Todas as Páginas

Use o campo `has_more` para saber quando parar:

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

  BASE_URL = "https://api.ya.onl/v1/orders"
  HEADERS = {"X-API-Key": "yv_live_v1_sua_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_sua_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>

## Limites

* O valor máximo de `limit` é **100**. Solicitar mais de 100 retorna um erro `400 Bad Request`.
* Os números de página iniciam em **1**. Solicitar página 0 ou um número negativo retorna um erro de validação.


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