API
Paginação
Como navegar por listas de recursos usando paginação baseada em cursor.
Paginação
A API do Nobur utiliza paginação baseada em cursor para todos os endpoints de listagem. Este modelo garante performance consistente e navegação estável mesmo com grandes volumes de dados.
Parâmetros
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
cursor | string | (vazio) | Token opaco para a próxima página. Omita para a primeira página. |
limit | integer | 25 | Número de itens por página (mínimo 1, máximo 100). |
Formato da Resposta
Todas as respostas de listagem seguem o formato:
{
"items": [
{ "id": "brk_abc123", "name": "João da Silva", "creci": "12345-F", "..." : "..." },
{ "id": "brk_def456", "name": "Maria Oliveira", "creci": "67890-J", "..." : "..." }
],
"page_info": {
"start_cursor": "dXNlci1jdXJzb3ItZXhhbXBsZS0x",
"end_cursor": "dXNlci1jdXJzb3ItZXhhbXBsZS0y",
"has_next_page": true,
"has_previous_page": false
}
}Campos de page_info
| Campo | Tipo | Descrição |
|---|---|---|
start_cursor | string | null | Cursor do primeiro item da página |
end_cursor | string | null | Cursor para obter a próxima página |
has_next_page | boolean | Indica se existem mais itens |
has_previous_page | boolean | Indica se existem itens anteriores |
Header Link (RFC 8288)
Além do campo page_info no corpo da resposta, a API inclui o header Link conforme RFC 8288:
Link: <https://api.nobur.com.br/public/v1/brokers?cursor=eyJ...&limit=25>; rel="next"Navegação Entre Páginas
Primeira página
Não envie o parâmetro cursor:
curl -X GET "https://api.nobur.com.br/public/v1/brokers?limit=10" \
-H "X-API-Key: nbr_sua_chave_aqui"Próxima página
Use o valor de page_info.end_cursor como parâmetro cursor:
curl -X GET "https://api.nobur.com.br/public/v1/brokers?cursor=eyJ...&limit=10" \
-H "X-API-Key: nbr_sua_chave_aqui"Última página
Quando page_info.has_next_page for false, não há mais resultados.
Exemplo Completo
Iterando sobre todos os corretores em um script:
CURSOR=""
PAGE=1
while true; do
echo "Buscando página $PAGE..."
if [ -z "$CURSOR" ]; then
RESPONSE=$(curl -s "https://api.nobur.com.br/public/v1/brokers?limit=25" \
-H "X-API-Key: nbr_sua_chave_aqui")
else
RESPONSE=$(curl -s "https://api.nobur.com.br/public/v1/brokers?cursor=$CURSOR&limit=25" \
-H "X-API-Key: nbr_sua_chave_aqui")
fi
# Processar os itens da resposta
echo "$RESPONSE" | jq '.items[] | .name'
# Verificar se há próxima página
HAS_NEXT=$(echo "$RESPONSE" | jq -r '.page_info.has_next_page')
if [ "$HAS_NEXT" != "true" ]; then
echo "Fim dos resultados."
break
fi
CURSOR=$(echo "$RESPONSE" | jq -r '.page_info.end_cursor')
PAGE=$((PAGE + 1))
doneObservações
- Os cursores são tokens opacos -- não tente decodificá-los ou construí-los manualmente
- Cursores são válidos por um período limitado; não os armazene para uso futuro
- A ordenação padrão é por data de criação (mais recente primeiro)
- O tamanho máximo de página (
limit) é 100 itens