> ## 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.

# Scraping par lot

> Remarque : une nouvelle [version v2 de cette API](/fr/api-reference/endpoint/batch-scrape) est maintenant disponible, avec de meilleures performances et une fiabilité accrue pour le traitement par lots.


## OpenAPI

````yaml fr/api-reference/v1-openapi.json POST /batch/scrape
openapi: 3.0.0
info:
  contact:
    email: support@firecrawl.dev
    name: Firecrawl Support
    url: https://firecrawl.dev/support
  description: >-
    API permettant d’interagir avec les services Firecrawl pour réaliser des
    tâches de scraping et de crawling web.
  title: Firecrawl API
  version: v1
servers:
  - url: https://api.firecrawl.dev/v1
security:
  - bearerAuth: []
paths:
  /batch/scrape:
    post:
      tags:
        - Scraping
      summary: >-
        Scraper plusieurs URL et éventuellement en extraire des informations à
        l’aide d’un LLM
      operationId: scrapeAndExtractFromUrls
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - properties:
                    ignoreInvalidURLs:
                      default: false
                      description: >-
                        Si des URL non valides sont spécifiées dans le tableau
                        `urls`, elles seront ignorées. Au lieu de faire échouer
                        l’intégralité de la requête, une opération de scraping
                        par lot sera créée en utilisant les URL valides
                        restantes, et les URL non valides seront renvoyées dans
                        le champ `invalidURLs` de la réponse.
                      type: boolean
                    maxConcurrency:
                      description: >-
                        Nombre maximal de scrapes simultanés. Ce paramètre vous
                        permet de définir une limite de scrapes parallèles pour
                        ce lot. S’il n’est pas spécifié, le lot respecte la
                        limite de scrapes parallèles de votre équipe.
                      type: integer
                    urls:
                      items:
                        description: L’URL à explorer
                        format: uri
                        type: string
                      type: array
                    webhook:
                      description: Un objet représentant la spécification d’un webhook.
                      properties:
                        events:
                          description: >-
                            Type d’événements à envoyer à l’URL du webhook (par
                            défaut : tous).
                          items:
                            enum:
                              - completed
                              - page
                              - failed
                              - started
                            type: string
                          type: array
                        headers:
                          additionalProperties:
                            type: string
                          description: En-têtes à envoyer à l’URL du webhook.
                          type: object
                        metadata:
                          additionalProperties: true
                          description: >-
                            Métadonnées personnalisées qui seront incluses dans
                            toutes les données envoyées via webhook pour ce
                            crawl
                          type: object
                        url:
                          description: >-
                            L’URL vers laquelle envoyer le webhook. Celui-ci
                            sera déclenché au démarrage du scraping par lots
                            (batch_scrape.started), pour chaque page extraite
                            (batch_scrape.page) et lorsque le scraping par lots
                            est terminé (batch_scrape.completed ou
                            batch_scrape.failed). La réponse sera la même que
                            celle de l’endpoint `/scrape`.
                          type: string
                      required:
                        - url
                      type: object
                  required:
                    - urls
                  type: object
                - $ref: '#/components/schemas/ScrapeOptions'
                - properties:
                    zeroDataRetention:
                      default: false
                      description: >-
                        Si cette option est définie sur true, cela activera
                        l’absence totale de conservation des données pour ce lot
                        de scraping. Pour activer cette fonctionnalité, veuillez
                        contacter help@firecrawl.dev
                      type: boolean
                  type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchScrapeResponseObj'
          description: Réponse en cas de succès
        '402':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: Payment required to access this resource.
                    type: string
                type: object
          description: Paiement requis
        '429':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: >-
                      Request rate limit exceeded. Please wait and try again
                      later.
                    type: string
                type: object
          description: Trop de requêtes
        '500':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: An unexpected error occurred on the server.
                    type: string
                type: object
          description: Erreur du serveur
      security:
        - bearerAuth: []
components:
  schemas:
    ScrapeOptions:
      allOf:
        - $ref: '#/components/schemas/BaseScrapeOptions'
        - properties:
            changeTrackingOptions:
              description: >-
                Options de suivi des modifications (bêta). Applicable uniquement
                lorsque « changeTracking » est inclus dans les formats. Le
                format « markdown » doit également être spécifié lors de
                l’utilisation du suivi des modifications.
              properties:
                modes:
                  description: >-
                    Le mode à utiliser pour le suivi des modifications. «
                    git-diff » fournit un diff détaillé, et « json » compare les
                    données JSON extraites.
                  items:
                    enum:
                      - git-diff
                      - json
                    type: string
                  type: array
                prompt:
                  description: >-
                    Prompt à utiliser pour le suivi des modifications lors de
                    l’utilisation du mode « json ». S’il n’est pas renseigné, le
                    prompt par défaut sera utilisé.
                  type: string
                schema:
                  description: >-
                    Schéma pour l’extraction JSON lors de l’utilisation du mode
                    « json ». Définit la structure des données à extraire et à
                    comparer. Doit être conforme à [JSON
                    Schema](https://json-schema.org/).
                  type: object
                tag:
                  default: null
                  description: >-
                    Tag à utiliser pour le suivi des modifications. Les tags
                    peuvent séparer l’historique de suivi des modifications en «
                    branches » distinctes, où le suivi des modifications avec un
                    tag spécifique ne comparera qu’avec les scrapes effectués
                    avec le même tag. Si aucun tag n’est fourni, le tag par
                    défaut (null) sera utilisé.
                  nullable: true
                  type: string
              type: object
            formats:
              default:
                - markdown
              description: Formats à inclure dans le résultat.
              items:
                enum:
                  - markdown
                  - html
                  - rawHtml
                  - links
                  - screenshot
                  - screenshot@fullPage
                  - json
                  - changeTracking
                type: string
              type: array
          type: object
    BatchScrapeResponseObj:
      properties:
        id:
          type: string
        invalidURLs:
          description: >-
            Si ignoreInvalidURLs est à true, ce champ est un tableau contenant
            les URL invalides qui ont été spécifiées dans la requête. S’il n’y a
            aucune URL invalide, ce sera un tableau vide. Si ignoreInvalidURLs
            est à false, ce champ sera undefined.
          items:
            type: string
          nullable: true
          type: array
        success:
          type: boolean
        url:
          format: uri
          type: string
      type: object
    BaseScrapeOptions:
      properties:
        actions:
          description: Actions à effectuer sur la page avant de récupérer le contenu
          items:
            oneOf:
              - properties:
                  milliseconds:
                    description: Nombre de millisecondes d'attente
                    minimum: 1
                    type: integer
                  selector:
                    description: Sélecteur de requête permettant de trouver l’élément par
                    example: '#my-element'
                    type: string
                  type:
                    description: Attendre un nombre donné de millisecondes
                    enum:
                      - wait
                    type: string
                required:
                  - type
                title: Wait
                type: object
              - properties:
                  fullPage:
                    default: false
                    description: >-
                      Indique s’il faut effectuer une capture d’écran de la page
                      entière ou la limiter à la zone d’affichage actuelle
                      (viewport).
                    type: boolean
                  quality:
                    description: >-
                      La qualité de la capture d’écran, allant de 1 à 100. 100
                      correspond à la qualité la plus élevée.
                    type: integer
                  type:
                    description: >-
                      Prenez une capture d’écran. Les liens seront disponibles
                      dans le tableau `actions.screenshots` de la réponse.
                    enum:
                      - screenshot
                    type: string
                required:
                  - type
                title: Screenshot
                type: object
              - properties:
                  all:
                    default: false
                    description: >-
                      Clique sur tous les éléments correspondant au sélecteur,
                      et pas uniquement le premier. Ne génère pas d’erreur si
                      aucun élément ne correspond au sélecteur.
                    type: boolean
                  selector:
                    description: Sélecteur CSS pour trouver l’élément par
                    example: '#load-more-button'
                    type: string
                  type:
                    description: Cliquez sur un élément
                    enum:
                      - click
                    type: string
                required:
                  - type
                  - selector
                title: Click
                type: object
              - properties:
                  text:
                    description: Texte à saisir
                    example: Hello, world!
                    type: string
                  type:
                    description: >-
                      Saisir du texte dans un champ de saisie, une zone de texte
                      ou un élément contenteditable. Remarque : vous devez
                      d’abord placer le focus sur l’élément à l’aide d’une
                      action de « clic » avant de saisir le texte. Le texte sera
                      entré caractère par caractère pour simuler une saisie au
                      clavier.
                    enum:
                      - write
                    type: string
                required:
                  - type
                  - text
                title: Write text
                type: object
              - description: >-
                  Appuyez sur une touche sur cette page. Voir
                  https://asawicki.info/nosense/doc/devices/keyboard/key_codes.html
                  pour la liste des codes de touches.
                properties:
                  key:
                    description: Touche à presser
                    example: Enter
                    type: string
                  type:
                    description: Appuyez sur une touche du clavier
                    enum:
                      - press
                    type: string
                required:
                  - type
                  - key
                title: Press a key
                type: object
              - properties:
                  direction:
                    default: down
                    description: Sens de défilement
                    enum:
                      - up
                      - down
                    type: string
                  selector:
                    description: Sélecteur CSS de l’élément à faire défiler
                    example: '#my-element'
                    type: string
                  type:
                    description: Faire défiler la page ou un élément spécifique
                    enum:
                      - scroll
                    type: string
                required:
                  - type
                title: Scroll
                type: object
              - properties:
                  type:
                    description: >-
                      Extrait le contenu de la page actuelle et renvoie l’URL et
                      le HTML.
                    enum:
                      - scrape
                    type: string
                required:
                  - type
                title: Scrape
                type: object
              - properties:
                  script:
                    description: Code JavaScript à exécuter
                    example: document.querySelector('.button').click();
                    type: string
                  type:
                    description: Exécuter du code JavaScript sur la page
                    enum:
                      - executeJavascript
                    type: string
                required:
                  - type
                  - script
                title: Execute JavaScript
                type: object
              - properties:
                  format:
                    default: Letter
                    description: Le format de page du PDF généré
                    enum:
                      - A0
                      - A1
                      - A2
                      - A3
                      - A4
                      - A5
                      - A6
                      - Letter
                      - Legal
                      - Tabloid
                      - Ledger
                    type: string
                  landscape:
                    default: false
                    description: Indique s’il faut générer le PDF au format paysage
                    type: boolean
                  scale:
                    default: 1
                    description: Le facteur d’échelle du PDF généré
                    type: number
                  type:
                    description: >-
                      Générer un PDF de la page actuelle. Le PDF sera renvoyé
                      dans le tableau `actions.pdfs` de la réponse.
                    enum:
                      - pdf
                    type: string
                required:
                  - type
                title: Generate PDF
                type: object
          type: array
        blockAds:
          default: true
          description: Active le blocage des publicités et des bannières de cookies.
          type: boolean
        excludeTags:
          description: Balises à exclure du résultat.
          items:
            type: string
          type: array
        headers:
          description: >-
            En-têtes à envoyer avec la requête. Peuvent servir à envoyer des
            cookies, l’en-tête User-Agent, etc.
          type: object
        includeTags:
          description: Balises à inclure dans la sortie.
          items:
            type: string
          type: array
        jsonOptions:
          description: Objet JSON d’options
          properties:
            prompt:
              description: Le prompt à utiliser pour l’extraction sans schéma (optionnel)
              type: string
            schema:
              description: >-
                Le schéma d’extraction à utiliser (facultatif). Doit être
                conforme à la spécification [JSON
                Schema](https://json-schema.org/).
              type: object
            systemPrompt:
              description: Le prompt système à utiliser pour l'extraction (optionnel)
              type: string
          type: object
        location:
          description: >-
            Paramètre de localisation de la requête. Lorsqu’il est spécifié, un
            proxy approprié est utilisé si disponible et la langue ainsi que le
            fuseau horaire correspondants sont émulés. Par défaut, « US » est
            utilisé si aucun paramètre n’est spécifié.
          properties:
            country:
              default: US
              description: >-
                Code de pays ISO 3166-1 alpha-2 (par ex. « US », « AU », « DE »,
                « JP »)
              pattern: ^[A-Z]{2}$
              type: string
            languages:
              description: >-
                Langues et paramètres régionaux préférés pour la requête, par
                ordre de priorité. Par défaut, la langue de l’emplacement
                spécifié est utilisée. Voir
                https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language
              items:
                example: en-US
                type: string
              type: array
          type: object
        maxAge:
          default: 0
          description: >-
            Renvoie une version mise en cache de la page si elle a moins que
            cette ancienneté (en millisecondes). Si une version mise en cache de
            la page est plus ancienne que cette valeur, la page sera à nouveau
            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
            jusqu’à 500 %. La valeur par défaut est 0, ce qui désactive la mise
            en cache.
          type: integer
        mobile:
          default: false
          description: >-
            Mettez cette option à true si vous souhaitez simuler le scraping
            depuis un appareil mobile. Utile pour tester les pages responsive et
            prendre des captures d’écran mobiles.
          type: boolean
        onlyMainContent:
          default: true
          description: >-
            Renvoyer uniquement le contenu principal de la page, en excluant les
            en-têtes, éléments de navigation, pieds de page, etc.
          type: boolean
        parsePDF:
          default: true
          description: >-
            Contrôle la façon dont les fichiers PDF sont traités lors du
            scraping. Lorsque cette option est activée (true), 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). Lorsque cette
            option est désactivée (false), le fichier PDF est renvoyé sous forme
            de base64 avec un tarif forfaitaire de 1 crédit au total.
          type: boolean
        proxy:
          description: "Spécifie le type de proxy à utiliser.\n\n - **basic**\0a0: Proxys pour le scraping de sites sans protection anti-bot ou avec des protections basiques. Rapide et généralement fiable.\n - **enhanced**\0a0: Proxys avancés pour le scraping de sites avec des solutions anti-bot sophistiquées. Plus lents, mais plus fiables sur certains sites. Coût pouvant aller jusqu’à 5 crédits par requête.\n - **auto**\0a0: Firecrawl réessaie automatiquement le scraping avec des proxys enhanced si le proxy basic échoue. Si le nouvel essai avec enhanced réussit, 5 crédits seront facturés pour l’opération de scraping. Si la première tentative avec basic réussit, seul le coût normal sera facturé.\n\nSi vous ne spécifiez pas de proxy, Firecrawl utilisera basic par défaut."
          enum:
            - basic
            - enhanced
            - auto
          type: string
        removeBase64Images:
          default: true
          description: >-
            Supprime toutes les images encodées en base64 de la sortie, qui
            peuvent être extrêmement longues. Le texte alternatif de l’image est
            conservé dans la sortie, mais l’URL est remplacée par un
            placeholder.
          type: boolean
        skipTlsVerification:
          default: false
          description: >-
            Ignorer la vérification des certificats TLS lors de l’envoi de
            requêtes
          type: boolean
        storeInCache:
          default: true
          description: >-
            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 enjeux de protection
            des données. L’utilisation de certains paramètres associés à un
            scraping sensible (actions, en-têtes) forcera ce paramètre à false.
          type: boolean
        threatProtection:
          $ref: '#/components/schemas/ThreatProtectionOverride'
        timeout:
          default: 30000
          description: Délai d'attente de la requête en millisecondes
          type: integer
        waitFor:
          default: 0
          description: >-
            Spécifiez un délai, en millisecondes, avant de récupérer le contenu,
            afin de laisser à la page suffisamment de temps pour se charger.
          type: integer
      type: object
    ThreatProtectionOverride:
      description: >-
        Dérogation par requête à la [Protection contre les
        menaces](https://docs.firecrawl.dev/features/threat-protection). Les
        champs que vous fournissez remplacent les champs correspondants de la
        politique de votre organisation pour cette requête uniquement ; les
        champs omis conservent leurs valeurs définies au niveau de
        l’organisation. La Protection contre les menaces doit être activée pour
        votre équipe (fonctionnalité Enterprise) — sinon, la requête est rejetée
        avec un code 403. Si votre organisation a désactivé les dérogations par
        requête, toute requête incluant cet objet est rejetée avec un code 403.
        Si la Protection contre les menaces est imposée pour votre équipe,
        `mode` ne peut pas être défini sur `off`.
      properties:
        blacklist:
          description: >-
            Domaines à toujours bloquer, sous forme de domaines simples
            (`example.com`) ou de jokers (`*.example.com`). Sans protocole,
            chemin ni port.
          items:
            type: string
          maxItems: 1000
          type: array
        blockedTlds:
          description: >-
            Domaines de premier niveau à bloquer systématiquement, en minuscules
            et sans le point initial (par ex. `zip`).
          items:
            type: string
          maxItems: 1000
          type: array
        failurePolicy:
          description: >-
            Comportement à adopter lorsque le classifier est inaccessible :
            `closed` bloque la requête, `open` l’autorise.
          enum:
            - open
            - closed
          type: string
        mode:
          description: >-
            Mode d’analyse des URL pour cette requête. `normal` vérifie les URL
            via Google Web Risk (+2 crédits par URL vérifiée).
          enum:
            - 'off'
            - normal
          type: string
        riskScoreThreshold:
          description: >-
            Score de risque normalisé (0–100) à partir duquel le verdict d’un
            classificateur bloque l’URL. Plus il est faible, plus le seuil est
            strict.
          example: 75
          maximum: 100
          minimum: 0
          type: integer
        whitelist:
          description: >-
            Domaines à toujours autoriser, sous forme de domaines simples ou de
            jokers. Cette règle prévaut sur toutes les autres.
          items:
            type: string
          maxItems: 1000
          type: array
      title: Threat Protection Override
      type: object
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````