Pagination
Parcourir une liste longue par curseur, sans total et sans page qui saute.
Les listes se parcourent par curseur, jamais par numéro de page : un crawl peut porter des centaines de milliers d’occurrences, et un décalage relirait tout ce qu’il saute.
Première page
limit fixe la taille de la page (25 par défaut, 100 au plus) :
curl "https://api.nessflow.com/v1/crawls/$CRAWL_ID/issues?limit=1" \
-H "Authorization: Bearer $NESSFLOW_TOKEN"
La réponse porte meta.has_more et meta.next_cursor.
Pages suivantes
Passez next_cursor tel quel, avec les MÊMES filtres :
curl "https://api.nessflow.com/v1/crawls/$CRAWL_ID/issues?limit=1&cursor=$NEXT_CURSOR" \
-H "Authorization: Bearer $NESSFLOW_TOKEN"
Arrêtez-vous quand has_more vaut false. L’ordre est stable : une page lue deux fois rend les mêmes lignes.
Ce que le curseur refuse
Le curseur est chiffré et lié à sa requête : le réutiliser sur une autre liste, ou avec d’autres filtres, répond 400 pagination.invalid_cursor plutôt que de rendre une page qui mélangerait deux listes.
curl "https://api.nessflow.com/v1/crawls/$CRAWL_ID/pages?cursor=$NEXT_CURSOR" \
-H "Authorization: Bearer $NESSFLOW_TOKEN"
Il n’y a pas de total : le compter coûterait une lecture complète à chaque page. Le résumé des anomalies donne les totaux qui comptent.