Paginação
Listas da API são paginadas por cursor: cada página indica onde a próxima começa.
Como funciona#
GET/v1/orders
- Chame a lista sem
cursor. A resposta traz a primeira página emdata. - Se
has_morefortrue, chame de novo passando o valor denext_cursorno parâmetrocursor. - Repita até
has_moreserfalse. Na última página,next_cursorénull.
has_more é sempre igual a next_cursor != null.
O tamanho da página vai no parâmetro limit, de 1 a 100. O padrão é 25.
GET/v1/orders?limit=100&cursor=MjAyNi0xMC0zMFQxNDowNToxMi4zNDU2NzhafDBiN2Uy...
curl "https://api.movvio.com.br/v1/orders?limit=100&cursor=MjAyNi0xMC0zMFQxNDowNToxMi4zNDU2NzhafDBiN2Uy..." \
-H "Authorization: Bearer mvk_live_xxx"Resposta200 OK
{
"data": [
{
"id": "0b7e2a1c-4f5d-4c3e-9a8b-1d2e3f4a5b6c",
"order_number": "1042",
"external_order_id": "98765",
"customer_name": "Cliente Exemplo",
"total": "129.90",
"status": "driver_assigned",
"external_source": "bling",
"ordered_at": "2026-10-30",
"created_at": "2026-10-30T14:05:12.345Z"
}
],
"has_more": true,
"next_cursor": "MjAyNi0xMC0zMFQxNDowNToxMi4zNDU2NzhafDBiN2Uy..."
}Ordem e consistência#
Os pedidos vêm do mais novo para o mais antigo (created_at desc, depois id desc). O cursor marca a posição do último pedido da página, então pedidos criados enquanto você pagina não fazem itens se repetirem nem sumirem das páginas seguintes. Eles aparecem na primeira página de uma nova leitura.
Ler todas as páginas#
Exemplo em Node.js que percorre todos os pedidos:
let cursor = null;
do {
const url = new URL('https://api.movvio.com.br/v1/orders');
url.searchParams.set('limit', '100');
if (cursor) url.searchParams.set('cursor', cursor);
const response = await fetch(url, {
headers: { Authorization: 'Bearer mvk_live_xxx' },
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const page = await response.json();
for (const order of page.data) {
console.log(order.id, order.status);
}
cursor = page.next_cursor;
} while (cursor);