Primeira chamada
GET /public/v1/leads?limit=100&updated_since=...
A paginação por cursor permite percorrer páginas da listagem com estabilidade, usando o cursor retornado pela própria API.
Cursor é mais adequado para sincronização do que paginação por número de página quando a base pode mudar entre uma chamada e outra. O cliente continua a partir do ponto retornado pela API.
{
"page_info": {
"next_cursor": "eyJ2Ijox...",
"has_more": true
}
} Se has_more for true, envie cursor=VALOR_DE_next_cursor na próxima chamada. Se next_cursor for null ou has_more for false, a janela de paginação terminou.
Não altere parâmetros da consulta no meio da paginação. Mantenha limit e filtros coerentes até concluir a janela e use uma chave estável no destino para upsert quando necessário.
GET /public/v1/leads?limit=100&updated_since=...
Verificar has_more e next_cursor.
Chamar GET /public/v1/leads?limit=100&cursor=NEXT_CURSOR_AQUI.
Parar quando has_more=false e salvar o marco da sincronização.
| Status | Código | Quando acontece | Ação recomendada |
|---|---|---|---|
| 400 | invalid_cursor | O cursor informado não pode ser lido ou não pertence à consulta atual. | Use apenas o valor retornado em page_info.next_cursor. |
| 400 | invalid_limit | O limit está fora do intervalo aceito ou não é numérico. | Ajuste o tamanho da página antes de repetir a chamada. |