Paginação

As listagens usam cursor, não offset. O cursor é o id do último item da página anterior.

Parâmetros

Parâmetros

limit
inteiro, 1 a 100opcional
Quantos itens trazer. Padrão 20.
starting_after
uuidopcional
Id do último item da página anterior. A resposta começa no item seguinte a ele.

Envelope

Toda listagem devolve object, data e has_more. Não há contagem total: contar a tabela inteira a cada página seria caro e o número já estaria velho quando chegasse.

Resposta 200
{
  "object": "list",
  "data": [ { "id": "…", "object": "charge" } ],
  "has_more": true
}

Percorrendo tudo

Repita enquanto has_more for verdadeiro, passando o id do último item.

Node.js
let cursor
const todas = []

do {
  const url = new URL('https://api.transakto.io/v1/charges')
  url.searchParams.set('limit', '100')
  if (cursor) url.searchParams.set('starting_after', cursor)

  const response = await fetch(url, {
    headers: { 'x-api-key': process.env.API_KEY },
  })
  const page = await response.json()

  todas.push(...page.data)
  cursor = page.data.at(-1)?.id
  var temMais = page.has_more
} while (temMais && cursor)

Ordenação

Da mais recente para a mais antiga, por data de criação. Cobranças criadas enquanto você pagina não empurram itens para a página seguinte, que é justamente o problema do offset.