We use cookies to improve your experience and analyze site traffic. By clicking “Accept”, you agree to our use of cookies.

Learn more about our privacy practices
Corvo
English

Paginação

Paginação por cursor opaco em todas as listagens da API.

Toda listagem retorna { "data": [...], "pagination": { "limit", "hasMore", "nextCursor" } }. Não existem page, pageSize, offset nem total.

Como paginar

  • Primeira chamada: GET /v1/companies?limit=50. limit aceita inteiros de 1 a 1000 (padrão 50); valores inválidos retornam 400 com ERROR_INVALID_LIMIT, sem truncamento automático.
  • Próximas páginas: envie cursor=<nextCursor> mantendo exatamente os mesmos filtros. Você pode mudar o limit entre páginas.
  • No fim, hasMore é false e nextCursor é null. Uma lista vazia retorna data: [].
  • O cursor é opaco e versionado: não o edite, construa ou reaproveite em outra coleção, tenant ou filtro (400 com ERROR_INVALID_CURSOR).
  • A leitura usa dados atuais, sem snapshot entre requisições: itens inseridos depois não aparecem na continuação de uma listagem descendente, e o cursor continua válido se o registro dele for excluído.

javascript

async function listarTodasAsEmpresas() {
  const todas = [];
  let cursor;

  do {
    const url = new URL(`${BASE_URL}/companies`);
    url.searchParams.set("limit", "100");
    if (cursor) url.searchParams.set("cursor", cursor);

    const res = await fetch(url, {
      headers: { "X-API-Key": process.env.CORVO_API_KEY },
    });
    const { data, pagination } = await res.json();
    todas.push(...data);
    cursor = pagination.hasMore ? pagination.nextCursor : undefined;
  } while (cursor);

  return todas;
}