- Il gère les complexités : proxies, mise en cache, limites de débit, contenu bloqué par JS
- Prend en charge le contenu dynamique : sites web dynamiques, sites rendus par JS, PDF, images
- Produit du markdown propre, des données structurées, des captures d’écran ou du html.
Essayez-le dans le Playground
Testez le scraping dans le Playground interactif — aucun code à écrire.
Si une requête échoue, consultez Erreurs pour accéder au catalogue complet des codes d’erreur, de leurs causes, des correctifs et des conseils de nouvelle tentative.
Extraire le contenu d’une URL avec Firecrawl
point de terminaison /scrape
Installation
Utilisation
Chaque opération de
scrape consomme 1 crédit. Des crédits supplémentaires sont facturés pour certaines options : le mode JSON coûte 4 crédits supplémentaires par page, les formats question et highlights coûtent 4 crédits supplémentaires par page et par format, le proxy avancé coûte 4 crédits supplémentaires par page, le masquage des PII coûte 4 crédits supplémentaires par page, le traitement des PDF coûte 1 crédit par page de PDF, et l’extraction audio ou vidéo coûte 4 crédits supplémentaires par page.Réponse
Formats de scraping
- Markdown (
markdown) - Résumé (
summary) - HTML (
html) - version nettoyée du HTML de la page - HTML brut (
rawHtml) - HTML non modifié tel que reçu depuis la page - Capture d’écran (
screenshot, avec des options commefullPage,quality,viewport) — les URL de capture d’écran expirent après 24 heures - Liens (
links) - JSON (
json) - sortie structurée - Images (
images) - extrait toutes les URL d’images de la page - Branding (
branding) - extrait l’identité de marque et le design system - Produit (
product) - extrait un produit structuré (titre, prix, disponibilité, variantes) à partir de pages produit - Audio (
audio) - extrait l’audio MP3 à partir d’URL vidéo prises en charge, par ex. YouTube (retourne une URL GCS signée, expire après 1 heure) - Vidéo (
video) - extrait la vidéo de meilleure qualité à partir d’URL vidéo prises en charge, par ex. YouTube (retourne une URL GCS signée, expire après 1 heure) - Requête (
query, avecpromptetmodefacultatif) - posez une question en langage naturel sur la page ; la réponse est renvoyée dans le champanswer
Extraire des données structurées
Point de terminaison /scrape (avec json)
JSON
Extraction sans schéma
prompt au point de terminaison. Le LLM choisit la structure des données.
JSON
Options du format JSON
json, passez un objet dans formats avec les paramètres suivants :
schema: schéma JSON pour la sortie structurée.prompt: invite facultative pour orienter l’extraction lorsqu’un schéma est présent ou lorsque vous souhaitez un guidage léger.
Extraire l’identité de marque
endpoint /scrape (avec branding)
Réponse
Le format d’habillage de marque retourne un objetBrandingProfile complet avec la structure suivante :
Output
Structure du profil de marque
branding contient les propriétés suivantes :
colorScheme: Schéma de couleurs détecté (« light » ou « dark »)logo: URL du logo principalcolors: Objet contenant les couleurs de la marque :primary,secondary,accent: Couleurs principales de la marquebackground,textPrimary,textSecondary: Couleurs de l’interfacelink,success,warning,error: Couleurs sémantiques
fonts: Tableau des familles de polices utilisées sur la pagetypography: Informations détaillées sur la typographie :fontFamilies: Familles de polices principales, titres et codefontSizes: Définitions des tailles pour les titres et le corps du textefontWeights: Définitions des graisses (light, regular, medium, bold)lineHeights: Valeurs d’interlignage pour différents types de texte
spacing: Informations sur les espacements et la mise en page :baseUnit: Unité d’espacement de base en pixelsborderRadius: Rayon de bordure par défautpadding,margins: Valeurs d’espacement
components: Styles des composants d’interface :buttonPrimary,buttonSecondary: Styles des boutonsinput: Styles des champs de saisie
icons: Informations sur le style des icônesimages: Images de la marque (logo, favicon, og:image)animations: Paramètres d’animation et de transitionlayout: Configuration de la mise en page (grille, hauteurs d’en-tête/pied de page)personality: Traits de personnalité de la marque (ton, énergie, public cible)
Combiner avec d’autres formats
Extraire les données produit
product extrait des données produit structurées de façon déterministe — le même type de sortie structurée que le format json, mais sans appel à un LLM ni schéma à définir, et spécialement conçu pour les pages produit. Si vous récupériez des champs produit avec un schéma json, utilisez plutôt formats: ["product"] — c’est plus rapide et moins coûteux, mais limité aux produits.
Il renvoie un objet product avec le titre, la marque, la catégorie, la description et les variantes — chaque variante incluant le prix, le prix d’origine, la disponibilité et les images — utile pour le suivi des prix, l’ingestion de catalogues ou les outils de comparaison de prix.
point de terminaison /scrape (avec le paramètre product)
Réponse
Le format product renvoie un objetproduct avec la structure suivante :
Output
Structure de l’objet product
product contient les propriétés suivantes :
title: Le nom du produitbrand: La marque du produit (optionnel)category: La catégorie du produit (optionnel)url: L’URL canonique du produitdescription: La description du produit (optionnel)variants: Tableau des variantes du produit. La tarification, la disponibilité et les images sont définies sur chaque variante — un produit à SKU unique renvoie donc exactement une variante qui les contient. Chaque variante comprend :id,sku,title: les identifiants et le libellé de la variante (tous optionnels)values: une cartographie du nom d’option vers sa valeur, par ex.{ "color": "Charcoal" }(optionnel)price: l’objet du prix actuel (optionnel) :amount: La valeur numérique du prixcurrency: Le code de devise, renvoyé uniquement lorsque la page le fournit (optionnel)formatted: Le prix tel qu’affiché sur la page (optionnel)
sale: présent uniquement lorsque la variante est en promotion (optionnel). Contient :originalPrice: Le prix d’origine (avant réduction), avec la même structure queprice
availability: informations de disponibilité, toujours présentes sur une variante :inStock: Indique si la variante est en stocktext: Le texte brut de disponibilité extrait de la page (optionnel)
images: tableau des images de la variante, chacune avec uneurlet un textealtoptionnel (optionnel)
Fonctionnement de l’extraction de produit
product extrait le produit de manière déterministe à partir des données structurées présentes sur la page — aucun LLM n’intervient. Il fusionne plusieurs sources par ordre de priorité : JSON-LD > microdonnées schema.org > RDFa > état embarqué (__NEXT_DATA__/Nuxt/Apollo/Redux/Remix) > runParams d’AliExpress > dataLayer de GA4 > OpenGraph/<meta>. La fusion tient compte de l’identité, de sorte que des champs provenant de produits différents ne sont jamais combinés. La devise n’est indiquée que si la page la fournit.
L’extraction de produit fonctionne en mode fail-closed : les pages ambiguës ne renvoient aucun produit, et les sources moins fiables comme OpenGraph ne contribuent que lorsqu’un prix est présent. Sur une page sans produit extractible, la réponse omet l’objet
product et ajoute un warning (par ex. “Aucun produit trouvé…”).Auto-hébergement : le format
product repose sur un service dédié d’extraction de produits. Sur Firecrawl Cloud, il fonctionne immédiatement. Si vous l’auto-hébergez, définissez PRODUCT_EXTRACTION_SERVICE_URL pour qu’il pointe vers ce service — lorsqu’il n’est pas défini, demander le format product renvoie un avertissement et aucun produit (selon le même principe que les formats audio/vidéo pour leur service).Combiner avec d’autres formats
Vous pouvez combiner le format product avec d’autres formats pour obtenir des données complètes sur la page :Extraction audio
audio extrait l’audio de sites web pris en charge (par ex. YouTube) sous forme de fichiers MP3 et renvoie une URL signée de Google Cloud Storage. Cela est utile pour créer des pipelines de traitement audio, des services de transcription ou des outils de podcast.
L’extraction audio coûte 5 crédits par page (1 de base + 4 supplémentaires).
Extraction vidéo
video extrait la vidéo en meilleure qualité à partir des sites web pris en charge (par ex. YouTube) et renvoie une URL signée Google Cloud Storage. Cela permet de créer des pipelines de traitement vidéo, des outils de modération ou des workflows d’archivage multimédia.
L’extraction vidéo coûte 5 crédits par page (1 de base + 4 supplémentaires).
Format question
question pour poser une question en langage naturel à propos de la page. Firecrawl renvoie la réponse dans le champ answer de la réponse.
Le format
question coûte 5 crédits par page (1 de base + 4 supplémentaires pour l’appel au LLM).question(obligatoire pourtype: "question") : la question à laquelle répondre. Maximum : 10 000 caractères.
question avec d’autres formats — par exemple, demander markdown et question ensemble pour obtenir le contenu de la page et une réponse en un seul appel.
question est également disponible dans /search via scrapeOptions, ce qui exécute la même extraction sur chaque résultat de recherche.
Format highlights
highlights pour trouver le texte source pertinent sur la page. Firecrawl renvoie le texte sélectionné dans le champ highlights de la réponse.
Le format
highlights coûte 5 crédits par page (1 de base + 4 supplémentaires pour l’appel au LLM).query(obligatoire pourtype: "highlights") : la requête de sélection du texte source. Maximum : 10 000 caractères.
highlights avec d’autres formats — par exemple, demander markdown et highlights ensemble pour obtenir le contenu de la page et le texte source en un seul appel.
highlights est également disponible dans /search via scrapeOptions, qui exécute la même extraction sur chaque résultat de recherche.
Masquage des données personnelles identifiables
redactPII: true pour masquer les données personnelles identifiables dans le markdown renvoyé. Le champ markdown contient le résultat masqué.
Voir Masquage des données personnelles identifiables pour des exemples avec le SDK, cURL, le CLI et MCP.
Interagir avec la page à l’aide des actions
wait avant et après l’exécution d’autres actions afin de laisser suffisamment de temps au chargement de la page.
Exemple
Résultat
actions.
Localisation et langue
Fonctionnement
Utilisation
location dans le corps de votre requête avec les propriétés suivantes :
country: code pays ISO 3166-1 alpha-2 (p. ex. « US », « AU », « DE », « JP »). Par défaut : « US ».languages: un tableau des langues et paramètres régionaux préférés pour la requête, par ordre de priorité. Par défaut : la langue de la localisation spécifiée.
Mise en cache et maxAge
- Fenêtre de fraîcheur par défaut :
maxAge = 172800000ms (2 jours). Si une page en cache est plus récente que ce délai, elle est renvoyée instantanément ; sinon, la page est scrapée puis mise en cache. - Performances : cela peut accélérer les scrapes jusqu’à 5x lorsque les données n’ont pas besoin d’être ultra fraîches.
- Toujours récupérer du contenu frais : définissez
maxAgeà0. Notez que cela contourne entièrement le cache ; chaque requête passe donc par l’intégralité du pipeline de scraping, ce qui signifie qu’elle prendra plus de temps à aboutir et aura davantage de chances d’échouer. Utilisez une valeur demaxAgenon nulle si une fraîcheur maximale à chaque requête n’est pas indispensable. - Éviter le stockage : définissez
storeInCachesurfalsesi vous ne voulez pas que Firecrawl mette en cache/stocke les résultats pour cette requête. - Consultation du cache uniquement : définissez
minAgepour effectuer une consultation du cache uniquement sans déclencher de nouveau scrape. La valeur est exprimée en millisecondes et indique l’ancienneté minimale que doivent avoir les données en cache. Si aucune donnée en cache n’est trouvée, une erreur404avec le codeSCRAPE_NO_CACHED_DATAest renvoyée. DéfinissezminAgeà1pour accepter n’importe quelle donnée en cache, quel que soit son âge. - Suivi des modifications : les requêtes qui incluent
changeTrackingcontournent le cache ;maxAgeest donc ignoré. - Crédits : les résultats en cache coûtent toujours 1 crédit par page. La mise en cache améliore la vitesse, pas la consommation de crédits.
Extraction par lots de plusieurs URL
Fonctionnement
/crawl. Il lance un job de scraping par lot et renvoie un ID de job pour en vérifier l’état.
Le SDK propose deux méthodes, synchrone et asynchrone. La méthode synchrone renvoie les résultats du job de scraping par lot, tandis que la méthode asynchrone renvoie un ID de job que vous pouvez utiliser pour en suivre l’état.
Utilisation
Réponse
Synchrone
Terminé
Asynchrone
/batch/scrape/{id}. Ce point de terminaison est destiné à être utilisé pendant l’exécution de la tâche ou juste après son achèvement, car les tâches de batch scrape expirent après 24 heures.
Mode amélioré
Rétention zéro des données (ZDR)
zeroDataRetention: true dans votre requête :
cURL
Les captures d’écran ne sont pas disponibles en mode ZDR. Comme elles nécessitent un envoi vers un stockage persistant, elles sont incompatibles avec la garantie ZDR. Les requêtes qui incluent à la fois
zeroDataRetention: true et un format screenshot renverront une erreur.Êtes-vous un agent IA ayant besoin d’une clé API Firecrawl ? Consultez firecrawl.dev/agent-onboarding/SKILL.md pour obtenir les instructions d’intégration automatisée.

