> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Surveillance de site web

> Planifier le crawl d’un site web et détecter les modifications sur chaque page découverte

La surveillance de site web porte sur un site entier plutôt que sur une liste fixe d’URL. À chaque vérification, un crawl est exécuté pour l’`url` cible, scrape chaque page découverte, puis compare le résultat au dernier instantané conservé. Cela permet de détecter les pages ajoutées, modifiées ou supprimées, et pas seulement les modifications apportées aux pages que vous avez déjà spécifiées. C’est le bon choix pour les sites de documentation, les blogs, les journaux des modifications, les centres d’aide et les sites de concurrents.

Cette page couvre la cible `crawl`. La planification, les objectifs et l’évaluation, le suivi des modifications, les notifications et la tarification sont communs à tous les types de surveillance. Consultez la [vue d’ensemble de la surveillance](/fr/features/monitoring).

<div id="create-a-website-monitor">
  ## Créer un monitor pour un site web
</div>

Créez un monitor avec une cible `crawl` afin de générer un diff pour chaque page découverte lors d’un crawl à chaque vérification :

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

  monitor = firecrawl.create_monitor(
      name="Docs monitor",
      schedule={"cron": "7-59/15 * * * *", "timezone": "UTC"},
      goal="Notify me when docs pages add, remove, or materially change API behavior",
      targets=[
          {
              "type": "crawl",
              "url": "https://example.com/docs",
              "crawlOptions": {
                  "limit": 100,
                  "maxDiscoveryDepth": 3,
              },
          }
      ],
      webhook={
          "url": "https://example.com/webhooks/firecrawl",
          "events": ["monitor.page", "monitor.check.completed"],
      },
  )

  print(monitor.id)
  ```

  ```js Node theme={null}
  import Firecrawl from "@mendable/firecrawl-js";

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

  const monitor = await firecrawl.createMonitor({
    name: "Docs monitor",
    schedule: { cron: "7-59/15 * * * *", timezone: "UTC" },
    webhook: {
      url: "https://example.com/webhooks/firecrawl",
      events: ["monitor.page", "monitor.check.completed"],
    },
    goal: "Notify me when docs pages add, remove, or materially change API behavior",
    targets: [
      {
        type: "crawl",
        url: "https://example.com/docs",
        crawlOptions: {
          limit: 100,
          maxDiscoveryDepth: 3,
        },
      },
    ],
  });

  console.log(monitor.id);
  ```

  ```bash cURL theme={null}
  curl -s -X POST "https://api.firecrawl.dev/v2/monitor" \
    -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Docs monitor",
      "schedule": {
        "cron": "7-59/15 * * * *",
        "timezone": "UTC"
      },
      "webhook": {
        "url": "https://example.com/webhooks/firecrawl",
        "events": ["monitor.page", "monitor.check.completed"]
      },
      "goal": "Notify me when docs pages add, remove, or materially change API behavior",
      "targets": [
        {
          "type": "crawl",
          "url": "https://example.com/docs",
          "crawlOptions": {
            "limit": 100,
            "maxDiscoveryDepth": 3
          }
        }
      ]
    }'
  ```
</CodeGroup>

<div id="crawl-target">
  ## Cible de crawl
</div>

Une cible `crawl` nécessite `type` et une seule `url`. Utilisez `crawlOptions` pour définir le comportement du crawl et `scrapeOptions` pour définir la façon dont chaque page découverte est scrapée :

```json Crawl target theme={null}
{
  "type": "crawl",
  "url": "https://example.com/docs",
  "crawlOptions": {
    "limit": 100,
    "includePaths": ["/docs"]
  },
  "scrapeOptions": {
    "formats": ["markdown"]
  }
}
```

Champs courants de `crawlOptions` :

* `limit` : Nombre maximal de pages qu'une vérification peut crawler.
* `maxDiscoveryDepth` : Nombre de niveaux de liens à parcourir depuis l'`url` de départ pour découvrir des pages.
* `maxDepth` : Profondeur maximale du crawl.
* `includePaths` : Surveille uniquement les URL correspondant à ces modèles de chemin (par exemple, `/docs`).
* `excludePaths` : Ignore les URL correspondant à ces modèles de chemin.

Comme pour les monitors de page, les scrapes déclenchés par un monitor définissent `maxAge` sur `0` par défaut. Ainsi, chaque vérification re-scrape les pages découvertes à neuf, sauf si vous définissez une autre valeur de `maxAge` dans `scrapeOptions`.

<div id="what-each-check-reports">
  ## Ce que chaque vérification rapporte
</div>

Une vérification de crawl compare chaque page découverte à la vérification précédente et enregistre un état pour chaque page :

* `same` : La page a de nouveau été découverte et n’a pas changé.
* `changed` : La page a de nouveau été découverte et a changé.
* `new` : La page a été découverte pour la première fois.
* `removed` : Une page présente lors de la vérification précédente n’a plus été découverte.
* `error` : La page n’a pas pu être vérifiée.

Pour déclencher une alerte sur des champs structurés spécifiques dans les pages explorées, ajoutez un format `changeTracking` à `scrapeOptions`. Voir [Suivi des modifications](/fr/features/monitoring#change-tracking).

<div id="shared-configuration">
  ## Configuration partagée
</div>

* [Planification](/fr/features/monitoring#schedules) : cron ou cadence en langage naturel, minimum : 5 minutes.
* [Objectifs et évaluation](/fr/features/monitoring#goals-and-judging) : alerter uniquement sur les changements pertinents.
* [Notifications](/fr/features/monitoring#notifications) : envoi par webhook et e-mail.
* [Résultats des vérifications](/fr/features/monitoring#check-results) : consultez chaque vérification et les diffs de chaque page.
* [Tarification](/fr/features/monitoring#pricing) : 1 crédit par page découverte à chaque vérification, plus l’évaluation facultative.
