Paginação
Endpoints que retornam listas usam paginação offset-based com os parâmetros take (tamanho da página) e skip (deslocamento). A resposta sempre embrulha os resultados em data com um objeto pagination que indica se há mais registros.
Parâmetros
| Parâmetro | Tipo | Padrão | Mínimo | Máximo | Descrição |
|---|---|---|---|---|---|
take | integer | 50 | 1 | 500 | Quantidade de registros por página |
skip | integer | 0 | 0 | — | Quantidade de registros a pular |
Algumas rotas usam
limitno lugar detake(ex.:GET /v1/ltv?contractId=&limit=). Sempre confira o contrato específico do endpoint na seção API Reference.
Estrutura da Resposta
{
"data": {
"snapshots": [
{ "contractId": "123", "currentLtv": 0.6667, "status": "OK" },
{ "contractId": "124", "currentLtv": 0.7100, "status": "OK" }
],
"pagination": {
"total": 250,
"limit": 50,
"offset": 0,
"hasMore": true
}
}
}
| Campo | Tipo | Descrição |
|---|---|---|
total | integer | Total de registros que satisfazem o filtro |
limit | integer | Eco do take enviado na requisição |
offset | integer | Eco do skip enviado na requisição |
hasMore | boolean | true se ainda houver registros após esta página |
Exemplo de Uso
# Primeira página (50 itens)
curl "https://dev-api.fortbix.com/v1/ltv/list?take=50&skip=0" \
-H "api-key: $API_KEY"
# Próxima página
curl "https://dev-api.fortbix.com/v1/ltv/list?take=50&skip=50" \
-H "api-key: $API_KEY"
# Combinar com filtro
curl "https://dev-api.fortbix.com/v1/ltv/list?status=ALERT&take=100&skip=0" \
-H "api-key: $API_KEY"
Iterando Todos os Resultados
async function listAll(endpoint, apiKey) {
const take = 100
let skip = 0
const all = []
while (true) {
const url = `${endpoint}?take=${take}&skip=${skip}`
const res = await fetch(url, {
headers: { 'api-key': apiKey },
})
const { data } = await res.json()
const items = data.snapshots ?? data.contracts ?? data.items ?? []
all.push(...items)
if (!data.pagination?.hasMore) break
skip += take
}
return all
}
Boas Práticas
- Use o maior
takepermitido (até 500) ao processar grandes volumes em background, e valores menores (10–50) em telas paginadas. - Não dependa de
totalpara detectar fim de página — usehasMore.totalpode variar entre requisições caso novos registros sejam criados. - Combine
take/skipcom filtros (ex.:status,role,borrowerDocument) para reduzir o conjunto antes de paginar.