# Lire les résultats d’un crawl

> Anomalies, pages et rapports d’un crawl, et la comparaison avec le précédent.

## Le résumé des anomalies

```bash
curl "https://api.nessflow.com/v1/crawls/$CRAWL_ID/issues/summary" \
  -H "Authorization: Bearer $NESSFLOW_TOKEN"
```

Le résumé rend les familles d’anomalies avec leur nombre d’occurrences et les totaux par gravité. Les constats qui décrivent une page de pare-feu ou d’interstitiel, et non le site, sortent de tous les totaux ; leur nombre est rendu à part (`protection_occurrences`).

## Les occurrences, filtrées

Une ligne par anomalie et par URL, filtrable par gravité, catégorie ou nom :

```bash
curl "https://api.nessflow.com/v1/crawls/$CRAWL_ID/issues?severity=error&limit=50" \
  -H "Authorization: Bearer $NESSFLOW_TOKEN"
```

## Les pages

La liste des pages crawlées, ou une page précise par son URL :

```bash
curl "https://api.nessflow.com/v1/crawls/$CRAWL_ID/pages/by-url?url=https%3A%2F%2Fexemple.fr%2F" \
  -H "Authorization: Bearer $NESSFLOW_TOKEN"
```

## Les rapports

Chaque crawl porte des rapports figés : `pagespeed`, `geo`, `accessibility`, `eeat` et `structure`. Chacun déclare son `status` (`ready`, `pending` ou `unavailable`) et la version du barème qui l’a produit :

```bash
curl "https://api.nessflow.com/v1/crawls/$CRAWL_ID/geo" \
  -H "Authorization: Bearer $NESSFLOW_TOKEN"
```

Un rapport absent n’est jamais rendu en zéros : `score: null` veut dire « non mesuré ».

## Comparer au crawl précédent

```bash
curl "https://api.nessflow.com/v1/crawls/$CRAWL_ID/compare" \
  -H "Authorization: Bearer $NESSFLOW_TOKEN"
```

Sans paramètre, la référence est le crawl comparable précédent du même projet. Un crawl tronqué n’en est jamais une : quand aucune référence n’existe, l’API répond `404 crawl.no_baseline`.
