Pular para o conteúdo

Paginação por cursor

As listagens de pedidos, transações e saques usam keyset pagination (cursor), estável mesmo com escrita concorrente.

  • limit — itens por página (default 50, máx 100)
  • cursor — cursor opaco da página seguinte

A resposta traz:

Formato da resposta paginada
{ "items": [ ... ], "nextCursor": "eyJjcmVhdGVkQXQiOiIy...", "hasMore": true }

Enquanto hasMore for true, repita a chamada passando cursor=<nextCursor>. Quando hasMore for false, nextCursor vem null. Os itens são ordenados do mais recente para o mais antigo (created_at desc, com id como desempate). Não construa cursores à mão — o formato é interno (JSON em base64url) e pode mudar sem aviso.

Exemplo — percorrer todas as páginas (bash + jq, vale para pedidos, transações e saques):

Percorrer todas as páginas
BASE="https://goldpay-goldpay-api.f0czp0.easypanel.host/api"
KEY="<SECRET_KEY>"
cursor=""
while :; do
resp=$(curl -s -H "X-Api-Key: $KEY" \
"$BASE/merchant/orders?limit=50${cursor:+&cursor=$cursor}")
echo "$resp" | jq -c '.items[]' # processe os itens da página
[ "$(echo "$resp" | jq -r '.hasMore')" = "true" ] || break
cursor=$(echo "$resp" | jq -r '.nextCursor')
done