- Découvre les pages via le sitemap et le parcours récursif des liens
- Prend en charge le filtrage des chemins, les limites de profondeur et le contrôle des sous-domaines et des liens externes
- Renvoie les résultats via polling, WebSocket ou webhook
Essayez-le dans le Playground
Testez le crawl dans le Playground interactif — sans écrire de code.
Installation
Utilisation de base
POST /v2/crawl avec une URL de départ. Le point de terminaison renvoie un ID de tâche que vous utilisez pour interroger les résultats.
Chaque page explorée consomme 1 crédit. La valeur par défaut de
limit pour l’exploration est de 10 000 pages. Définissez une valeur de limit plus basse pour contrôler l’utilisation des crédits (par exemple limit: 100). Des crédits supplémentaires s’appliquent pour certaines options : le mode JSON coûte 4 crédits supplémentaires par page, le proxy amélioré coûte 4 crédits supplémentaires par page, et l’analyse des PDF coûte 1 crédit par page de PDF.Options de scrape
scrapeOptions (JS) / scrape_options (Python). Elles s’appliquent à chaque page que le crawler extrait, y compris les formats, le proxy, la mise en cache, les actions, la localisation et les tags.
Vérification du statut du crawl
Les résultats des jobs de crawl sont disponibles via l’API pendant 24 heures après leur achèvement. Après cette période, vous pouvez toujours consulter l’historique de vos crawls et leurs résultats dans les journaux d’activité.
Les pages dans le tableau
data des résultats de crawl sont des pages que Firecrawl a extraites avec succès, même si le site cible a renvoyé une erreur HTTP comme 404. Le champ metadata.statusCode indique le code de statut HTTP renvoyé par le site cible. Pour récupérer les pages que Firecrawl lui‑même n’a pas réussi à extraire (par exemple en cas d’erreurs réseau, d’expirations de délai ou de blocages liés à robots.txt), utilisez l’endpoint dédié Get Crawl Errors (GET /crawl/{id}/errors).Gestion des réponses
next est fourni. Vous devez appeler cette URL pour récupérer les 10 Mo de données suivants. Si le paramètre next est absent, cela indique la fin des données du crawl.
Les paramètres
skip et next ne sont pertinents que lors d’appels directs à l’API.
Si vous utilisez le SDK, la pagination est gérée automatiquement et tous
les résultats sont renvoyés en une seule fois.Méthodes du SDK
Crawler puis attendre
crawl attend la fin du crawl et renvoie la réponse complète. Elle gère automatiquement la pagination. Cela est recommandé pour la plupart des cas d’usage.
Démarrer et vérifier plus tard
startCrawl / start_crawl renvoie immédiatement un ID de crawl. Vous pouvez ensuite vérifier manuellement l’état. Utile pour les crawls de longue durée ou une logique de polling personnalisée.
Résultats en temps réel avec WebSocket
Webhooks
cURL
Types d’événements
| Événement | Description |
|---|---|
crawl.started | Se déclenche au démarrage du crawl |
crawl.page | Se déclenche pour chaque page extraite avec succès |
crawl.completed | Se déclenche à la fin du crawl |
crawl.failed | Se déclenche si le crawl rencontre une erreur |
Charge utile
Vérification des signatures de webhook
X-Firecrawl-Signature contenant une signature HMAC-SHA256. Vérifiez toujours cette signature pour vous assurer que le webhook est authentique et n’a pas été altéré.
- Récupérez votre secret de webhook dans l’onglet Advanced des paramètres de votre compte
- Extrayez la signature de l’en-tête
X-Firecrawl-Signature - Calculez le HMAC-SHA256 du corps brut de la requête à l’aide de votre secret
- Comparez-le avec l’en-tête de signature en utilisant une fonction sécurisée contre les attaques par temporisation
Référence de configuration
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
url | string | (obligatoire) | URL de départ du crawl |
limit | integer | 10000 | Nombre maximal de pages à crawler |
maxDiscoveryDepth | integer | (aucun) | Profondeur maximale depuis l’URL racine en fonction des sauts de découverte de liens, et non du nombre de segments / dans l’URL. Chaque fois qu’une nouvelle URL est trouvée sur une page, une profondeur supérieure de 1 à celle de la page sur laquelle elle a été découverte lui est attribuée. Le site racine et les pages du sitemap ont une profondeur de découverte égale à 0. Les pages à la profondeur maximale sont tout de même scrapées, mais les liens qu’elles contiennent ne sont pas suivis. |
includePaths | string[] | (aucun) | Expressions régulières sur le chemin de l’URL à inclure. Seuls les chemins correspondants sont crawlés. |
excludePaths | string[] | (aucun) | Expressions régulières sur le chemin de l’URL à exclure du crawl |
regexOnFullURL | boolean | false | Applique includePaths/excludePaths à l’URL complète (y compris les paramètres de requête), et pas seulement au chemin |
crawlEntireDomain | boolean | false | Suit les liens internes vers des URL sœurs ou parentes, et pas uniquement vers des chemins enfants |
allowSubdomains | boolean | false | Suit les liens vers les sous-domaines du domaine principal |
allowExternalLinks | boolean | false | Suit les liens vers des sites web externes |
sitemap | string | "include" | Gestion du sitemap : "include" (par défaut), "skip" ou "only" |
ignoreQueryParameters | boolean | false | Évite de scraper plusieurs fois le même chemin avec des paramètres de requête différents |
delay | number | (aucun) | Délai, en secondes, entre les scrapes afin de respecter les limites de débit |
maxConcurrency | integer | (aucun) | Nombre maximal de scrapes simultanés. Utilise par défaut la limite de simultanéité de votre équipe. |
scrapeOptions | object | (aucun) | Options appliquées à chaque page lors du scrape (formats, proxy, mise en cache, actions, etc.) |
webhook | object | (aucun) | Configuration du webhook pour les notifications en temps réel |
prompt | string | (aucun) | Prompt en langage naturel permettant de générer les options de crawl. Les paramètres explicitement définis remplacent les équivalents générés. |
Détails importants
- Découverte du sitemap : Par défaut, le crawler inclut le sitemap du site pour découvrir les URL (
sitemap: "include"). Si vous définissezsitemap: "skip", seules les pages accessibles via des liens HTML depuis l’URL racine seront trouvées. Les ressources comme les PDF ou les pages profondément imbriquées listées dans le sitemap mais non directement liées en HTML ne seront pas découvertes. Pour une couverture maximale, conservez le paramètre par défaut. - Utilisation des crédits : Chaque page crawlée coûte 1 crédit. Le mode JSON ajoute 4 crédits par page, le proxy avancé ajoute 4 crédits par page, et l’analyse des PDF coûte 1 crédit par page de PDF.
- Expiration des résultats : Les résultats des jobs restent disponibles via l’API pendant 24 heures après leur exécution. Passé ce délai, vous pouvez consulter les résultats dans les journaux d’activité.
- Erreurs de crawl : Le tableau
datacontient les pages que Firecrawl a réussi à extraire. Utilisez le point de terminaison Get Crawl Errors pour récupérer les pages ayant échoué en raison d’erreurs réseau, de délais d’attente ou de blocages par robots.txt. - Résultats non déterministes : Les résultats du crawl peuvent varier d’une exécution à l’autre avec la même configuration. Les pages sont extraites de manière concurrente, donc l’ordre dans lequel les liens sont découverts dépend du timing réseau et des pages qui finissent de se charger en premier. Cela signifie que différentes branches d’un site peuvent être explorées à des degrés divers à l’approche de la limite de profondeur, en particulier avec des valeurs élevées de
maxDiscoveryDepth. Pour obtenir des résultats plus déterministes, définissezmaxConcurrencysur1ou utilisezsitemap: "only"si le site dispose d’un sitemap complet.

