[Index de la documentation](https://prescriptio.fr/docs/llms.txt)

# Pagination

Les listes de Prescriptio se paginent par curseur : reprenez `next_cursor` tel qu'il a été rendu, avec exactement les mêmes filtres, jusqu'à ce qu'il vaille `null`.

## Le curseur

1. **Premier appel**

   Passez vos filtres et, si l'outil l'accepte, `limit` (par exemple de 1 à 50 pour `marches_rechercher`, 20 par défaut).

   ```json
   { "query": "isolation", "type": "ouvert", "localisation": { "dept": "69" }, "limit": 20 }
   ```

2. **Page suivante**

   Reprenez `next_cursor` **sans le modifier**, et gardez **tous** les filtres de l'appel précédent.

   ```json
   { "query": "isolation", "type": "ouvert", "localisation": { "dept": "69" }, "limit": 20, "cursor": "<next_cursor rendu>" }
   ```

3. **Fin**

   `next_cursor` vaut `null` : il n'y a plus de page.

## Les totaux

- `total_estimated` donne un ordre de grandeur quand il est connu.
- `total_estimated` à `null` veut dire **total inconnu** : n'extrapolez pas depuis la première page.
- Une enveloppe `results` vide veut dire zéro résultat **seulement si l'appel a réussi**.

## Les autres curseurs

| Où | Le curseur | La règle |
|---|---|---|
| Événements d'alerte | un point de reprise signé | Valable 7 jours ; distinct des curseurs de recherche |
| Journal des campagnes e-mail | une chaîne décimale, `curseur:"0"` au premier appel | Mémorisez `fields.curseur_suivant` après traitement de toute la page |
| Calendrier d'une campagne | `decalage` | Reportez `decalage_suivant` jusqu'à `null`, par pages de 1 à 200 |

> **Note :** Prescriptio ne fait pas d'export massif : les recherches sont bornées. Pour suivre un sujet dans la durée, une [alerte](https://prescriptio.fr/docs/alertes) et ses [événements](https://prescriptio.fr/docs/reference/evenements) valent mieux qu'une pagination complète chaque matin.
