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âmetroTipoPadrãoDescrição
cursorstring(vazio)Token opaco para a próxima página. Omita para a primeira página.
limitinteger25Nú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

CampoTipoDescrição
start_cursorstring | nullCursor do primeiro item da página
end_cursorstring | nullCursor para obter a próxima página
has_next_pagebooleanIndica se existem mais itens
has_previous_pagebooleanIndica se existem itens anteriores

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"

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))
done

Observaçõ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