Skip to content
API · Paginación

Paginación de listados

Cómo recorrer listados grandes (pedidos, productos, deliveries).

Modelo de paginación

En MVP los listados usan paginación por página + límite (offset-based). Para cada listado paginado la API acepta:

Query paramTipoDefaultMáximo
pageint1
limitint20100

Forma de la respuesta

Los listados paginados devuelven un objeto con data + pagination:

{
  "data": [ /* registros */ ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 247
  }
}

Ejemplo

curl "https://api.nuvlyx.com/api/v1/external/orders?page=2&limit=50" \
  -H "Authorization: Bearer nvl_live_TU_TOKEN"

Recorrer todo el listado

let page = 1;
const all = [];
while (true) {
  const r = await fetch(`.../external/orders?page=${page}&limit=100`, {
    headers: { Authorization: `Bearer ${TOKEN}` }
  });
  const { data, pagination } = await r.json();
  all.push(...data);
  if (page * pagination.limit >= pagination.total) break;
  page++;
}

¿Cursor pagination?

En el futuro migraremos los listados de alto volumen (deliveries de webhooks, transacciones de monedero) a paginación por cursor (?cursor=...) para evitar inconsistencias con datos que cambian rápido. Esta página se actualizará con el contrato exacto cuando esté listo. Mientras tanto, ordene por createdAt DESC y use dateFrom / dateTo para acotar ventanas en vez de paginar profundo.