API: paginação

Listas grandes usam paginação por cursor.

Como funciona

Toda listagem aceita limit (padrão 50, máximo 200) e cursor.

bash
curl "https://freteflow.fr.com.br/api/public/v1/freights?limit=100" \
  -H "X-API-Key: ff_live_..."

Resposta

json
{
  "data": [ /* ... 100 itens ... */ ],
  "page": {
    "next_cursor": "eyJpZCI6IjEyM30=",
    "has_more": true
  }
}

Próxima página

bash
curl "https://freteflow.fr.com.br/api/public/v1/freights?limit=100&cursor=eyJpZCI6IjEyM30=" \
  -H "X-API-Key: ff_live_..."

Iteração completa

ts
async function* listAllFreights(apiKey: string) {
  let cursor: string | undefined;
  do {
    const url = new URL("https://freteflow.fr.com.br/api/public/v1/freights");
    url.searchParams.set("limit", "200");
    if (cursor) url.searchParams.set("cursor", cursor);
    const res = await fetch(url, { headers: { "X-API-Key": apiKey } });
    const json = await res.json();
    for (const item of json.data) yield item;
    cursor = json.page.has_more ? json.page.next_cursor : undefined;
  } while (cursor);
}