Paginação

Rota que devolve lista não manda tudo de uma vez: manda uma página. Você escolhe o tamanho da página e qual página quer.

ParâmetroO que éPadrãoLimites
pageNúmero da página1a partir de 1
limitQuantos itens por página20de 1 a 100
GET /v2/transactions?page=2&limit=50

O que volta

{
  "data": [ { "id": "trx_…" }, { "id": "trx_…" } ],
  "page": 2,
  "limit": 50,
  "total": 137
}
CampoO que é
dataOs itens desta página
page, limitO que você pediu
totalQuantos itens existem no total com os filtros usados (não o tamanho da página)

Com total e limit você sabe quantas páginas existem: total ÷ limit, arredondando pra cima. No exemplo, 137 itens de 50 em 50 dão 3 páginas.

Percorrendo tudo

Peça a página 1 e siga somando até passar do total:

let page = 1;
const limit = 100;
const all = [];

while (true) {
  const result = await getTransactions({ page, limit });
  all.push(...result.data);
  if (page * limit >= result.total) break;
  page += 1;
}

O que saber

  • Filtro que não acha nada devolve lista vazia (data: [], total: 0), não erro.
  • Página além do fim também devolve lista vazia.
  • limit fora de 1 a 100, ou page menor que 1, é recusado com 400 VALIDATION_ERROR.
  • A ordem padrão é da mais recente pra mais antiga. Se vendas novas chegarem enquanto você percorre, os itens "andam" de página e você pode ver um repetido. Pra uma leitura fechada, use um período fixo com from e to.
  • Use limit alto (até 100) quando for buscar muita coisa: são menos chamadas, e cada chamada conta no limite por minuto.