Passer au contenu principal
POST
/
scrape
Récupérer le contenu d’une URL et éventuellement en extraire des informations à l’aide d’un LLM
curl --request POST \
  --url https://api.firecrawl.dev/v2/scrape \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "<string>",
  "formats": [
    "markdown"
  ],
  "onlyMainContent": true,
  "onlyCleanContent": false,
  "includeTags": [
    "<string>"
  ],
  "excludeTags": [
    "<string>"
  ],
  "maxAge": 172800000,
  "minAge": 123,
  "headers": {},
  "waitFor": 0,
  "mobile": false,
  "skipTlsVerification": true,
  "timeout": 60000,
  "parsers": [
    "pdf"
  ],
  "actions": [
    {
      "type": "wait",
      "milliseconds": 2
    }
  ],
  "location": {
    "country": "US",
    "languages": [
      "en-US"
    ]
  },
  "removeBase64Images": true,
  "blockAds": true,
  "proxy": "auto",
  "storeInCache": true,
  "lockdown": false,
  "zeroDataRetention": false
}
'
{
  "success": true,
  "data": {
    "markdown": "<string>",
    "summary": "<string>",
    "html": "<string>",
    "rawHtml": "<string>",
    "screenshot": "<string>",
    "audio": "<string>",
    "links": [
      "<string>"
    ],
    "actions": {
      "screenshots": [
        "<string>"
      ],
      "scrapes": [
        {
          "url": "<string>",
          "html": "<string>"
        }
      ],
      "javascriptReturns": [
        {
          "type": "<string>",
          "value": "<unknown>"
        }
      ],
      "pdfs": [
        "<string>"
      ]
    },
    "metadata": {
      "title": "<string>",
      "description": "<string>",
      "language": "<string>",
      "sourceURL": "<string>",
      "url": "<string>",
      "keywords": "<string>",
      "ogLocaleAlternate": [
        "<string>"
      ],
      "<any other metadata> ": "<string>",
      "statusCode": 123,
      "contentType": "<string>",
      "error": "<string>",
      "concurrencyLimited": true,
      "concurrencyQueueDurationMs": 123
    },
    "warning": "<string>",
    "changeTracking": {
      "previousScrapeAt": "2023-11-07T05:31:56Z",
      "changeStatus": "new",
      "visibility": "visible",
      "diff": "<string>",
      "json": {}
    },
    "branding": {
      "colorScheme": "light",
      "logo": "<string>",
      "colors": {
        "primary": "<string>",
        "secondary": "<string>",
        "accent": "<string>",
        "background": "<string>",
        "textPrimary": "<string>",
        "textSecondary": "<string>",
        "link": "<string>",
        "success": "<string>",
        "warning": "<string>",
        "error": "<string>"
      },
      "fonts": [
        {
          "family": "<string>"
        }
      ],
      "typography": {
        "fontFamilies": {
          "primary": "<string>",
          "heading": "<string>",
          "code": "<string>"
        },
        "fontSizes": {
          "h1": "<string>",
          "h2": "<string>",
          "h3": "<string>",
          "body": "<string>"
        },
        "fontWeights": {
          "light": 123,
          "regular": 123,
          "medium": 123,
          "bold": 123
        },
        "lineHeights": {
          "heading": "<string>",
          "body": "<string>"
        }
      },
      "spacing": {
        "baseUnit": 123,
        "borderRadius": "<string>",
        "padding": {},
        "margins": {}
      },
      "components": {
        "buttonPrimary": {
          "background": "<string>",
          "textColor": "<string>",
          "borderRadius": "<string>"
        },
        "buttonSecondary": {
          "background": "<string>",
          "textColor": "<string>",
          "borderColor": "<string>",
          "borderRadius": "<string>"
        },
        "input": {}
      },
      "icons": {},
      "images": {
        "logo": "<string>",
        "favicon": "<string>",
        "ogImage": "<string>"
      },
      "animations": {},
      "layout": {},
      "personality": {}
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://firecrawl-mog-search-exclude-include-domains.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Interactions

Pour les interactions avec le navigateur (clic, saisie, navigation, extraction de contenu dynamique), utilisez le point de terminaison Interact. Effectuez d’abord le scrape d’une page, puis appelez POST /v2/scrape/{scrapeId}/interact avec un prompt en langage naturel ou du code Playwright pour effectuer des actions sur la page. Consultez la documentation Interact pour tous les détails et des exemples. Vous pouvez aussi utiliser le paramètre actions, mais son usage n’est pas recommandé pour des interactions complexes.
Êtes-vous un agent IA ayant besoin d’une clé API Firecrawl ? Consultez firecrawl.dev/agent-onboarding/SKILL.md pour obtenir des instructions d’intégration automatisée.

Autorisations

Authorization
string
header
requis

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Corps

application/json
url
string<uri>
requis

L’URL à scraper

formats
(Markdown · object | Summary · object | HTML · object | Raw HTML · object | Links · object | Images · object | Screenshot · object | JSON · object | Change Tracking · object | Branding · object | Audio · object)[]

Formats de sortie à inclure dans la réponse. Vous pouvez spécifier un ou plusieurs formats, soit sous forme de chaînes (par ex. 'markdown'), soit sous forme d’objets avec des options supplémentaires (par ex. { type: 'json', schema: {...} }). Certains formats requièrent la définition d’options spécifiques. Exemple : ['markdown', { type: 'json', schema: {...} }].

onlyMainContent
boolean
défaut:true

Retourne uniquement le contenu principal de la page, à l’exclusion des en-têtes, menus de navigation, pieds de page, etc. Il s’agit d’un filtre déterministe appliqué au niveau HTML avant la génération du markdown ; aucun LLM n’intervient.

onlyCleanContent
boolean
défaut:false

Bêta. Exécute un passage supplémentaire basé sur un LLM sur le markdown généré afin de supprimer les éléments parasites résiduels que onlyMainContent peut manquer (bannières de cookies, blocs publicitaires, widgets de partage sur les réseaux sociaux, fils d’Ariane, inscriptions à la newsletter, sections de commentaires, listes d’articles similaires). Les titres, listes, tableaux, blocs de code, références d’images et liens intégrés sont conservés. Peut être combiné avec onlyMainContent (la configuration la plus courante) ou utilisé seul. Ignoré avec un avertissement lorsque le markdown dépasse la limite de jetons de sortie du modèle de nettoyage (le markdown d’origine est conservé). Non pris en charge pour les requêtes sans conservation des données.

includeTags
string[]

Balises à inclure dans le résultat.

excludeTags
string[]

Balises à exclure du résultat.

maxAge
integer
défaut:172800000

Retourne une version mise en cache de la page si elle est plus récente que cette durée (en millisecondes). Si une version mise en cache de la page est plus ancienne que cette valeur, la page sera à nouveau explorée (scrapée). Si vous n’avez pas besoin de données extrêmement récentes, activer cette option peut accélérer vos opérations de scraping de 500 %. Par défaut : 2 jours.

minAge
integer

Lorsqu’elle est définie, la requête vérifie uniquement le cache et ne déclenche jamais une nouvelle opération de scraping. La valeur est exprimée en millisecondes et indique l’âge minimal que doivent avoir les données en cache. Si des données en cache correspondantes existent, elles sont renvoyées instantanément. Si aucune donnée en cache n’est trouvée, une réponse 404 avec le code d’erreur SCRAPE_NO_CACHED_DATA est renvoyée. Définissez-la sur 1 pour accepter n’importe quelle donnée en cache, quel que soit son âge.

headers
object

En-têtes à inclure dans la requête. Peuvent être utilisés pour envoyer des cookies, un user-agent, etc.

waitFor
integer
défaut:0

Indiquez un délai en millisecondes avant de récupérer le contenu, afin de laisser à la page suffisamment de temps pour se charger. Ce temps d’attente s’ajoute à la fonction d’attente intelligente de Firecrawl.

mobile
boolean
défaut:false

Définissez cette option sur true pour simuler le scraping depuis un appareil mobile. Utile pour tester des pages responsives et prendre des captures d’écran en mode mobile.

skipTlsVerification
boolean
défaut:true

Ignorer la vérification du certificat TLS lors des requêtes.

timeout
integer
défaut:60000

Délai d’expiration de la requête en millisecondes. La valeur minimale est de 1000 (1 seconde). La valeur par défaut est de 60000 (60 secondes). La valeur maximale est de 300000 (300 secondes).

Plage requise: 1000 <= x <= 300000
parsers
object[]

Contrôle la façon dont les fichiers sont traités lors du scraping. Lorsque « pdf » est inclus (valeur par défaut), le contenu du PDF est extrait et converti au format Markdown, avec une facturation basée sur le nombre de pages (1 crédit par page). Lorsqu’un tableau vide est envoyé, le fichier PDF est renvoyé en encodage base64 avec un tarif fixe de 1 crédit pour l’ensemble du PDF.

actions
(Wait by Duration · object | Wait for Element · object | Screenshot · object | Click · object | Write text · object | Press a key · object | Scroll · object | Scrape · object | Execute JavaScript · object | Generate PDF · object)[]

Actions à effectuer sur la page avant de récupérer le contenu

location
object

Paramètres de localisation pour la requête. Lorsqu’ils sont définis, un proxy approprié sera utilisé si disponible et les paramètres de langue et de fuseau horaire correspondants seront simulés. La valeur par défaut est « US » si aucun n’est spécifié.

removeBase64Images
boolean
défaut:true

<[ { "key": "0", "translation": "Supprime toutes les images encodées en base64 de la sortie markdown, qui peut devenir excessivement longue. Cela n’affecte pas les formats html ou rawHtml. Le texte alternatif de l’image reste dans la sortie, mais l’URL est remplacée par un espace réservé." } ]</>

blockAds
boolean
défaut:true

Active le blocage des publicités et des fenêtres contextuelles de cookies.

proxy
enum<string>
défaut:auto

Spécifie le type de proxy à utiliser.

  • basic : Proxies pour le scraping de sites avec des solutions anti‑bots inexistantes ou basiques. Rapides et généralement efficaces.
  • enhanced : Proxies renforcés pour le scraping de sites avec des solutions anti‑bots avancées. Plus lents, mais plus fiables sur certains sites. Peut coûter jusqu’à 5 crédits par requête.
  • auto : Firecrawl réessaiera automatiquement le scraping avec des proxies renforcés si le proxy basic échoue. Si la nouvelle tentative avec le proxy renforcé réussit, 5 crédits seront facturés pour l’opération de scraping. Si la première tentative avec le proxy basic réussit, seul le coût standard sera facturé.
Options disponibles:
basic,
enhanced,
auto
storeInCache
boolean
défaut:true

Si ce paramètre est défini sur true, la page sera stockée dans l’index et le cache de Firecrawl. Le définir sur false est utile si votre activité de scraping peut soulever des problèmes de protection des données. L’utilisation de certains paramètres associés à un scraping sensible (par ex. actions, headers) forcera ce paramètre à false.

lockdown
boolean
défaut:false

Si défini sur true, la requête est traitée uniquement à partir du cache de Firecrawl et n’effectue jamais de requête sortante vers l’URL cible. Conçu pour les environnements soumis à des contraintes de conformité ou isolés du réseau, où la requête de scrape elle-même pourrait divulguer des informations sensibles. En cas d’absence dans le cache, renvoie une 404 avec le code d’erreur SCRAPE_LOCKDOWN_CACHE_MISS (l’URL n’est jamais journalisée en cas d’absence dans le cache). Les requêtes Lockdown sont traitées en mode zero data retention. La valeur maxAge par défaut est portée à 2 ans afin que les pages déjà mises en cache restent éligibles. Facturé 5 crédits en cas de hit, 1 crédit en cas d’absence dans le cache.

profile
object

Active le stockage persistant du navigateur entre les sessions de scrape et d’Interact. Transmettez un profil lors du scraping pour conserver les cookies, le localStorage et les données de session. Les sessions portant le même nom de profil partagent l’état du navigateur.

zeroDataRetention
boolean
défaut:false

Si la valeur est true, cela activera la non-conservation totale des données pour ce scraping. Pour activer cette fonctionnalité, veuillez contacter help@firecrawl.dev

Réponse

Réponse réussie

success
boolean
data
object