Docs
API

Paginação

Listas por cursor, do mais novo ao mais antigo.

Toda rota de lista (GET /v1/orders, GET /v1/customers…) devolve no máximo limit itens, do mais novo ao mais antigo:

{ "data": [ { "id": "ord_..." } ], "hasMore": true }
ParâmetroPadrãoO que faz
limit20Itens por página, de 1 a 100.
startingAfterId do último item da página atual: traz a próxima página (itens mais antigos).
endingBeforeId do primeiro item da página atual: traz a página anterior (itens mais novos).

Use um dos dois cursores por vez: mandar os dois dá 400 invalid_cursor. Um limit fora de 1 a 100 (ou que não seja número inteiro) dá 422 validation_failed, sem ajuste automático. Enquanto hasMore for true, há mais páginas.

Filtros

Os filtros entram na mesma query string e se combinam com os cursores. Cada lista tem os seus, descritos na referência. Os de Listar pedidos:

ParâmetroO que filtra
statusUm status exato: OPEN, PAID, PARTIALLY_REFUNDED, REFUNDED, EXPIRED, CANCELED.
stateGrupo: paid (pago em algum momento), open (esperando pagamento), closed (expirado ou cancelado).
createdFrom / createdToCriação, em ISO 8601 (from inclusivo, to exclusivo).
paidFrom / paidToPagamento, no mesmo formato.
qBusca por id do pedido, externalId, jogador, e-mail ou nome do comprador, ou nome do item.
sourceOrigem: STOREFRONT, API, PAYMENT_LINK, PLUGIN, DISCORD, SUBSCRIPTION, MANUAL.
methodComo foi pago: PIX, PIX_AUTOMATIC, CARD, BOLETO.
customerId, paymentLinkId, subscriptionIdPedidos daquele cliente, link ou assinatura.
deliveryEntrega da compra pending (na fila) ou failed.
disputeopen: com disputa aberta ou em análise.

Para achar o pedido do seu sistema, use q=pedido_123 (o externalId).

let cursor;
do {
  const url = new URL('https://api.rivoo.gg/v1/orders');
  url.searchParams.set('limit', '100');
  if (cursor) url.searchParams.set('startingAfter', cursor);
  const page = await fetch(url, { headers: { Authorization: `Bearer ${process.env.RIVOO_API_KEY}` } }).then((r) => r.json());
  for (const order of page.data) console.log(order.id, order.status);
  cursor = page.hasMore ? page.data.at(-1).id : undefined;
} while (cursor);

Nesta página