Traducida del inglés. Si hay alguna diferencia, la página en inglés es la referencia. Leer en inglés

Paginación

Paginación por cursor y recorridos de sincronización incremental.

Las listas que pueden crecer mucho usan paginación por cursor (productos, anuncios, pedidos, eventos, operaciones, acciones, anuncios ignorados, empresas, pedidos del storefront):

curl "https://api.nembol.com/rest/v1/products?limit=50" \
  -H "Authorization: Bearer $NEMBOL_API_KEY"
{
  "data": [ { "id": "…" } ],
  "has_more": true,
  "next_cursor": "eyJ1IjoiMjAyNi0wNy0yNFQx…"
}

Devuelve next_cursor como ?cursor= para obtener la página siguiente. Cuando has_more es false, has terminado. limit va de 1 a 100 (por defecto 25). Los cursores son opacos. No los parsees ni los guardes a largo plazo. Un cursor que no ha dado Nembol (truncado, editado, vacío) responde 422 validation_failed con param: cursor: nunca se interpreta como la primera página.

Listas sin cursor

Algunas listas son pequeñas por naturaleza, o tienen un tope, y llegan en una sola respuesta. No tienen limit / cursor; cuando aparece has_more, siempre es false.

ListaCómo se pagina
GET /customersPor páginas: page (desde 1), limit de 1 a 100, total en la respuesta
GET /promotionsLas 200 más recientes. Las más antiguas siguen accesibles por id (GET /promotions/{id})
GET /notificationsLas 200 más recientes
GET /storefront/discounts, GET /storefront/bundlesTodos, en una sola respuesta
GET /channel_accounts, GET /webhook_endpoints, GET /redirect_urls, GET /error_fixesTodos, en una sola respuesta (una tienda tiene unos pocos)
GET /sales, GET /catalog/diagnosticsInformes: un solo objeto, sin lista

Garantía de orden

Las listas se ordenan de la más reciente a la más antigua, con desempate estable por id: productos y anuncios por updated_at, pedidos por created_at (el momento en que se realizó el pedido), eventos por created_at. Este orden forma parte del contrato. Las páginas nunca se saltan ni repiten elementos dentro de un mismo recorrido.

Sincronización incremental

Para mantener un sistema externo sincronizado sin volver a leerlo todo, recorre la lista con updated_after:

curl "https://api.nembol.com/rest/v1/products?updated_after=2026-07-24T00:00:00Z&limit=100" \
  -H "Authorization: Bearer $NEMBOL_API_KEY"

Anota la marca de tiempo en la que empezaste el recorrido, pagina hasta el final y luego usa esa marca de tiempo como updated_after del siguiente recorrido. Los productos eliminados y fusionados salen de la lista por defecto: para detectarlos en un recorrido, lee también status=archived&updated_after=… (o usa el webhook product.deleted). (Para una sincronización push, usa los webhooks. El recorrido es el mecanismo de reconciliación de respaldo.)

Pedidos que han cambiado. GET /orders?updated_after=… devuelve los pedidos realizados o modificados (estado, envío, seguimiento: p. ej. cancelados o reembolsados en el canal) después de ese momento; el updated_at de cada pedido indica cuándo cambió por última vez. Consulta con la hora de tu consulta anterior. Para push, usa los webhooks order.created y order.status_changed.

Última actualización el 20 de octubre de 2026

¿Necesitas ayuda?

Escríbenos y te responde una persona, normalmente en un día laborable.

En esta página