Cette page présente tous les types d’événements webhook que Firecrawl peut envoyer à votre point de terminaison. Chaque type d’événement correspond à une étape distincte de vos opérations de scraping.

Structure des événements

Tous les événements webhook suivent cette structure de base :
{
  "success": true,
  "type": "crawl.page",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [...],
  "metadata": {}
}

Champs communs

ChampTypeDescription
successbooleanIndique si l’opération a réussi
typestringIdentifiant du type d’événement
idstringIdentifiant unique de la tâche
dataarrayDonnées propres à l’événement (varient selon le type)
metadataobjectMétadonnées personnalisées issues de votre configuration webhook
errorstringMessage d’erreur (présent lorsque success vaut false)

Événements de crawl

Opérations de crawl multi‑pages qui suivent les liens.

crawl.started

Envoyé au début d’une opération de crawl.
{
  "success": true,
  "type": "crawl.started",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [],
  "metadata": {}
}

crawl.page

Envoyé pour chaque page individuelle extraite pendant un crawl.
{
  "success": true,
  "type": "crawl.page",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [
    {
      "markdown": "# Bienvenue sur notre site\n\nVoici le contenu principal de la page...",
      "metadata": {
        "title": "Titre de la page",
        "description": "Description de la page",
        "url": "https://example.com/page",
        "statusCode": 200,
        "contentType": "text/html",
        "scrapeId": "550e8400-e29b-41d4-a716-446655440001",
        "sourceURL": "https://example.com/page",
        "proxyUsed": "basic",
        "cacheState": "hit",
        "cachedAt": "2025-09-03T21:11:25.636Z",
        "creditsUsed": 1
      }
    }
  ],
  "metadata": {}
}
C’est l’événement le plus fréquent lors des crawls. Vous recevrez un événement crawl.page pour chaque page correctement extraite.

crawl.completed

Envoyé lorsque l’opération de crawl complète s’achève avec succès.
{
  "success": true,
  "type": "crawl.completed",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [],
  "metadata": {}
}

Événements de scraping par lot

Opérations qui extraient plusieurs URL précises.

batch_scrape.started

Envoyé lorsqu’une opération d’extraction par lots commence.
{
  "success": true,
  "type": "batch_scrape.started",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [],
  "metadata": {}
}

batch_scrape.page

Envoyé pour chaque URL individuelle extraite dans le lot.
{
  "success": true,
  "type": "batch_scrape.page",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [
    {
      "markdown": "# Page d’accueil de l’entreprise\n\nBienvenue sur le site de notre entreprise...",
      "metadata": {
        "title": "Nom de l’entreprise - Page d’accueil",
        "description": "Description et présentation de l’entreprise",
        "url": "https://example.com",
        "statusCode": 200,
        "contentType": "text/html",
        "scrapeId": "550e8400-e29b-41d4-a716-446655440001",
        "sourceURL": "https://example.com",
        "proxyUsed": "basic",
        "cacheState": "miss"
        "cachedAt": "2025-09-03T23:30:53.434Z",
        "creditsUsed": 1
      }
    }
  ],
  "metadata": {}
}
C’est l’événement le plus fréquent lors des extractions par lot. Vous recevrez un événement batch_scrape.page pour chaque URL extraite avec succès.

batch_scrape.completed

Envoyé lorsque l’opération de scraping par lot est entièrement terminée.
{
  "success": true,
  "type": "batch_scrape.completed",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [],
  "metadata": {}
}

Événements d’extraction

Opérations d’extraction de données pilotées par des LLM.

extract.started

Envoyé lorsqu’une opération d’extraction démarre.
{
  "success": true,
  "type": "extract.started",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [],
  "metadata": {}
}

extract.completed

Envoyé lorsqu’une opération d’extraction s’achève avec succès.
{
  "success": true,
  "type": "extract.completed",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [
    {
      "success": true,
      "data": { "siteName": "Site exemple", "category": "Technologie" },
      "extractId": "550e8400-e29b-41d4-a716-446655440000",
      "llmUsage": 0.0020118,
      "totalUrlsScraped": 1,
      "sources": {
        "siteName": ["https://example.com"],
        "category": ["https://example.com"]
      }
    }
  ],
  "metadata": {}
}

extract.failed

Envoyé lorsqu’une opération d’extraction échoue.
{
  "success": false,
  "type": "extract.failed",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "data": [],
  "error": "Échec de l’extraction des données : délai d’attente dépassé",
  "metadata": {}
}

Filtrage des événements

Vous pouvez contrôler les événements que vous recevez en indiquant un tableau events dans la configuration de votre webhook :
{
  "url": "https://votre-app.com/webhook",
  "events": ["terminé", "échec"]
}