Sudrel API
Painel Criar chave de API

Documentação › Conceitos

Guias

Paginação e limites

Cursor de cada lista, limite de 120 requisições por minuto e tamanho máximo do corpo.

Paginação por cursor

As listas que podem crescer usam cursor: você pede uma página, guarda o cursor que veio e o devolve para pedir a próxima. Os nomes mudam entre as rotas. É herança das duas partes do produto (documentos recebidos nasceram antes da emissão), e o contrato não muda, então confira a tabela:

Rota Parâmetro do cursor Itens em Próximo cursor em limite (padrão / máx.)
GET /v1/documents cursor itens proximoCursor 20 / 100
GET /v1/nfse cursor dados proximo_cursor 50 / 100
GET /v1/lotes cursor dados proximo_cursor 20 / 100
GET /v1/lotes/{id}/itens cursor dados proximo_cursor 100 / 500
GET /v1/webhooks/{id}/entregas cursor entregas proximo_cursor 50 / 200
GET /v1/eventos apos eventos proximo_cursor 100 / 1000

GET /v1/companies e GET /v1/webhooks não são paginados: devolvem a lista inteira.

Regras que valem para todas:

  • Trate o cursor como valor opaco. Guarde e devolva exatamente como veio. Não interprete, não monte, não compare. O formato interno pode mudar.
  • Termine quando o próximo cursor vier nulo. Uma página com menos itens que limite, ou até vazia, não quer dizer que acabou: com filtro de status, a página pode vir menor e ainda ter próximo cursor.
  • GET /v1/eventos é diferente: o proximo_cursor vem sempre, mesmo na página vazia. É um log que cresce: guarde o último cursor e volte a ler a partir dele depois. Veja Eventos.
  • Nas rotas de emissão, lote, webhooks e eventos, cursor inválido é 400 parametro_invalido. Em /v1/eventos, cursor mais velho que a retenção de 90 dias é 410 cursor_vencido, com cursor_mais_antigo para continuar.
  • limite fora da faixa: em /v1/nfse é ajustado para dentro dela, sem erro; nas demais rotas é 400.

Limite de requisições

120 requisições por minuto, por chave de API, em janela fixa de 60 segundos alinhada ao relógio. Passar do limite devolve 429. Não há cabeçalho Retry-After nem X-RateLimit-*: espere a virada do minuto e repita a mesma requisição.

  • Um POST /v1/lotes conta como uma chamada, qualquer que seja o número de itens. Para volume, use lote.
  • Para acompanhar notas, use webhook. Consultar uma nota a cada segundo gasta o limite sem adiantar nada.

Tamanho do corpo

Até 2 MB por requisição. POST /v1/lotes aceita até 30 MB em JSON e planilha de até 20 MB.