> ## Documentation Index
> Fetch the complete documentation index at: https://firecrawl-noaa-mar-900-create-self-partnership-provisioning.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape

<div id="interactions">
  ## Interactions
</div>

Pour les interactions avec le navigateur (clic, saisie, navigation, extraction de contenu dynamique), utilisez le [point de terminaison Interact](/fr/features/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](/fr/features/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](https://www.firecrawl.dev/agent-onboarding/SKILL.md) pour obtenir des instructions d’intégration automatisée.


## OpenAPI

````yaml /fr/api-reference/v2-openapi.json POST /scrape
openapi: 3.0.0
info:
  title: Firecrawl API
  version: v2
  description: >-
    API pour interagir avec les services Firecrawl afin d’effectuer des tâches
    de scraping et de crawling web.
  contact:
    name: Firecrawl Support
    url: https://firecrawl.dev/support
    email: support@firecrawl.dev
servers:
  - url: https://api.firecrawl.dev/v2
security:
  - bearerAuth: []
paths:
  /scrape:
    post:
      tags:
        - Scraping
      summary: >-
        Récupérer le contenu d’une URL et éventuellement en extraire des
        informations à l’aide d’un LLM
      operationId: scrapeAndExtractFromUrl
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    url:
                      type: string
                      format: uri
                      description: L’URL à scraper
                  required:
                    - url
                - $ref: '#/components/schemas/ScrapeOptions'
                - type: object
                  properties:
                    zeroDataRetention:
                      type: boolean
                      default: false
                      description: >-
                        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
      responses:
        '200':
          description: Réponse réussie
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScrapeResponse'
        '402':
          description: Paiement requis
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Payment required to access this resource.
        '429':
          description: Trop de requêtes
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: >-
                      Request rate limit exceeded. Please wait and try again
                      later.
        '500':
          description: Erreur du serveur
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  code:
                    type: string
                    example: UNKNOWN_ERROR
                  error:
                    type: string
                    example: An unexpected error occurred on the server.
      security:
        - bearerAuth: []
components:
  schemas:
    ScrapeOptions:
      type: object
      properties:
        formats:
          $ref: '#/components/schemas/Formats'
        onlyMainContent:
          type: boolean
          description: >-
            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.
          default: true
        onlyCleanContent:
          type: boolean
          description: >-
            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.
          default: false
        includeTags:
          type: array
          items:
            type: string
          description: Balises à inclure dans le résultat.
        excludeTags:
          type: array
          items:
            type: string
          description: Balises à exclure du résultat.
        maxAge:
          type: integer
          description: "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."
          default: 172800000
        minAge:
          type: integer
          description: >-
            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:
          type: object
          description: >-
            En-têtes à inclure dans la requête. Peuvent être utilisés pour
            envoyer des cookies, un user-agent, etc.
        waitFor:
          type: integer
          description: >-
            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.
          default: 0
        mobile:
          type: boolean
          description: >-
            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.
          default: false
        skipTlsVerification:
          type: boolean
          description: Ignorer la vérification du certificat TLS lors des requêtes.
          default: true
        timeout:
          type: integer
          description: >-
            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).
          default: 60000
          minimum: 1000
          maximum: 300000
        parsers:
          type: array
          description: >-
            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.
          items:
            oneOf:
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - pdf
                  mode:
                    type: string
                    enum:
                      - fast
                      - auto
                      - ocr
                    default: auto
                    description: >-
                      Mode d’analyse des PDF. « fast » : extraction basée
                      uniquement sur le texte (texte intégré, la plus rapide). «
                      auto » (par défaut) : tente d’abord une extraction rapide,
                      puis bascule vers l’OCR si nécessaire. « ocr » : impose
                      une analyse OCR (reconnaissance optique de caractères) sur
                      chaque page.
                  maxPages:
                    type: integer
                    minimum: 1
                    maximum: 10000
                    description: >-
                      Nombre maximal de pages du PDF à analyser. Doit être un
                      entier positif inférieur ou égal à 10 000.
                required:
                  - type
                additionalProperties: false
          default:
            - pdf
        actions:
          type: array
          description: Actions à effectuer sur la page avant de récupérer le contenu
          items:
            oneOf:
              - title: Wait
                oneOf:
                  - type: object
                    title: Wait by Duration
                    properties:
                      type:
                        type: string
                        enum:
                          - wait
                        description: Attendre un nombre spécifié de millisecondes
                      milliseconds:
                        type: integer
                        minimum: 1
                        description: Nombre de millisecondes à attendre
                    required:
                      - type
                      - milliseconds
                    additionalProperties: false
                  - type: object
                    title: Wait for Element
                    properties:
                      type:
                        type: string
                        enum:
                          - wait
                        description: Attendre l’apparition d’un élément spécifique
                      selector:
                        type: string
                        description: Sélecteur CSS à surveiller
                        example: '#my-element'
                    required:
                      - type
                      - selector
                    additionalProperties: false
              - type: object
                title: Screenshot
                properties:
                  type:
                    type: string
                    enum:
                      - screenshot
                    description: >-
                      Prenez une capture d’écran. Les liens se trouveront dans
                      le tableau `actions.screenshots` de la réponse.
                  fullPage:
                    type: boolean
                    description: >-
                      Indique s’il faut prendre une capture d’écran de la page
                      entière (en ignorant viewport.height) ou seulement de la
                      zone actuellement visible (viewport).
                    default: false
                  quality:
                    type: integer
                    description: >-
                      Qualité de la capture d’écran, de 1 à 100, 100 étant la
                      meilleure qualité.
                  viewport:
                    type: object
                    properties:
                      width:
                        type: integer
                        description: La largeur de la fenêtre d’affichage, en pixels
                      height:
                        type: integer
                        description: Hauteur du viewport en pixels
                    required:
                      - width
                      - height
                required:
                  - type
              - type: object
                title: Click
                properties:
                  type:
                    type: string
                    enum:
                      - click
                    description: Cliquez sur un élément
                  selector:
                    type: string
                    description: Sélecteur pour trouver l’élément par
                    example: '#load-more-button'
                  all:
                    type: boolean
                    description: >-
                      Clique sur tous les éléments correspondant au sélecteur,
                      et pas seulement sur le premier. Ne lève pas d’erreur si
                      aucun élément ne correspond au sélecteur.
                    default: false
                required:
                  - type
                  - selector
              - type: object
                title: Write text
                properties:
                  type:
                    type: string
                    enum:
                      - write
                    description: >-
                      Écrivez 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 « click » avant d’écrire. Le texte sera saisi
                      caractère par caractère pour simuler une saisie au
                      clavier.
                  text:
                    type: string
                    description: Texte à saisir
                    example: Hello, world!
                required:
                  - type
                  - text
              - type: object
                title: Press a key
                description: >-
                  Appuyez sur une touche du clavier. Reportez-vous à
                  https://asawicki.info/nosense/doc/devices/keyboard/key_codes.html
                  pour la liste des codes de touches.
                properties:
                  type:
                    type: string
                    enum:
                      - press
                    description: Appuyez sur une touche de la page
                  key:
                    type: string
                    description: Touche sur laquelle appuyer
                    example: Enter
                required:
                  - type
                  - key
              - type: object
                title: Scroll
                properties:
                  type:
                    type: string
                    enum:
                      - scroll
                    description: Faites défiler la page ou un élément spécifique
                  direction:
                    type: string
                    enum:
                      - up
                      - down
                    description: Sens de défilement
                    default: down
                  selector:
                    type: string
                    description: Sélecteur CSS de l’élément à faire défiler
                    example: '#my-element'
                required:
                  - type
              - type: object
                title: Scrape
                properties:
                  type:
                    type: string
                    enum:
                      - scrape
                    description: >-
                      Extrait le contenu de la page actuelle et renvoie l’URL et
                      le HTML.
                required:
                  - type
              - type: object
                title: Execute JavaScript
                properties:
                  type:
                    type: string
                    enum:
                      - executeJavascript
                    description: Exécuter du code JavaScript sur la page
                  script:
                    type: string
                    description: Code JavaScript à exécuter
                    example: document.querySelector('.button').click();
                required:
                  - type
                  - script
              - type: object
                title: Generate PDF
                properties:
                  type:
                    type: string
                    enum:
                      - pdf
                    description: >-
                      Génère un PDF de la page en cours. Le PDF sera renvoyé
                      dans le tableau `actions.pdfs` de la réponse.
                  format:
                    type: string
                    enum:
                      - A0
                      - A1
                      - A2
                      - A3
                      - A4
                      - A5
                      - A6
                      - Letter
                      - Legal
                      - Tabloid
                      - Ledger
                    description: Le format de page du PDF obtenu
                    default: Letter
                  landscape:
                    type: boolean
                    description: Détermine s’il faut générer le PDF au format paysage
                    default: false
                  scale:
                    type: number
                    description: Facteur d’échelle du PDF généré
                    default: 1
                required:
                  - type
        location:
          type: object
          description: >-
            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é.
          properties:
            country:
              type: string
              description: >-
                Code de pays ISO 3166-1 alpha-2 (p. ex. « US », « AU », « DE »,
                « JP »)
              pattern: ^[A-Z]{2}$
              default: US
            languages:
              type: array
              description: >-
                Langues et paramètres régionaux préférés pour la requête, par
                ordre de priorité. Utilise par défaut la langue de l’emplacement
                spécifié. Voir
                https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language
              items:
                type: string
                example: en-US
        removeBase64Images:
          type: boolean
          description: |-
            <[
              {
                "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é."
              }
            ]</>
          default: true
        blockAds:
          type: boolean
          description: >-
            Active le blocage des publicités et des fenêtres contextuelles de
            cookies.
          default: true
        proxy:
          type: string
          enum:
            - basic
            - enhanced
            - auto
          description: "Spécifie le type de proxy à utiliser.\n\n - **basic**\_: Proxies pour le scraping de sites avec des solutions anti‑bots inexistantes ou basiques. Rapides et généralement efficaces.\n - **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.\n - **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é."
          default: auto
        storeInCache:
          type: boolean
          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 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.
          default: true
        lockdown:
          type: boolean
          description: >-
            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.
          default: false
        profile:
          type: object
          description: >-
            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.
          properties:
            name:
              type: string
              minLength: 1
              maxLength: 128
              description: >-
                Nom du profil. Les scrapes portant le même nom partagent l’état
                du navigateur (cookies, localStorage, sessions).
            saveChanges:
              type: boolean
              default: true
              description: >-
                Si la valeur est true, l’état du navigateur est enregistré dans
                le profil lorsque la session Interact s’arrête. Définissez la
                valeur sur false pour charger les données existantes sans les
                écrire. Une seule session d’enregistrement est autorisée à la
                fois.
          required:
            - name
    ScrapeResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          type: object
          properties:
            markdown:
              type: string
            summary:
              type: string
              nullable: true
              description: Résumé de la page si `summary` est inclus dans `formats`
            html:
              type: string
              nullable: true
              description: "Version HTML nettoyée de la page si `html` figure dans `formats`. Supprime les balises `<script>`, `<style>`, `<noscript>`, `<meta>` et `<head>`\_; convertit les URL relatives en URL absolues\_; résout les attributs `srcset` des images responsives vers leur plus grande version. Respecte les filtres `onlyMainContent`, `includeTags` et `excludeTags`."
            rawHtml:
              type: string
              nullable: true
              description: >-
                Le code HTML brut, exactement tel qu’il est reçu depuis la page
                lorsque `rawHtml` est inclus dans `formats`. Aucun nettoyage ni
                filtrage n’est appliqué.
            screenshot:
              type: string
              nullable: true
              description: >-
                Capture d’écran de la page si `screenshot` est inclus dans
                `formats`. Les captures d’écran expirent au bout de 24 heures et
                ne peuvent ensuite plus être téléchargées.
            audio:
              type: string
              nullable: true
              description: >-
                URL signée du fichier audio MP3 extrait si `audio` est présent
                dans `formats`. L’URL signée expire au bout d’une heure.
            video:
              type: string
              nullable: true
              description: >-
                URL signée du fichier vidéo extrait si `video` figure dans
                `formats`. L'URL signée expire au bout d'1 heure.
            answer:
              type: string
              nullable: true
              description: >-
                Réponse en langage naturel à la question fournie via le format
                `question`. Présente uniquement si un objet de format `question`
                a été inclus dans `formats`.
            highlights:
              type: string
              nullable: true
              description: >-
                Texte source pertinent sélectionné par le format `highlights`.
                Présent uniquement si un objet de format `highlights` a été
                inclus dans `formats`.
            links:
              type: array
              items:
                type: string
              description: Liste des liens sur la page si `links` fait partie de `formats`
            actions:
              type: object
              nullable: true
              description: >-
                Résultats des actions spécifiées via le paramètre `actions`.
                Uniquement présent si ce paramètre a été fourni dans la requête
              properties:
                screenshots:
                  type: array
                  description: >-
                    URLs des captures d’écran, dans le même ordre que les
                    actions de capture d’écran indiquées.
                  items:
                    type: string
                    format: url
                scrapes:
                  type: array
                  description: >-
                    Extraire le contenu dans le même ordre que les actions de
                    scraping fournies.
                  items:
                    type: object
                    properties:
                      url:
                        type: string
                      html:
                        type: string
                javascriptReturns:
                  type: array
                  description: >-
                    Valeurs renvoyées par JavaScript, dans le même ordre que les
                    actions executeJavascript fournies.
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                      value: {}
                pdfs:
                  type: array
                  description: >-
                    PDF générés, dans le même ordre que les actions PDF
                    fournies.
                  items:
                    type: string
            metadata:
              type: object
              properties:
                title:
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  description: >-
                    Titre extrait de la page, peut être une chaîne de caractères
                    ou un tableau de chaînes de caractères
                description:
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  description: >-
                    Description extraite de la page, peut être une chaîne de
                    caractères ou un tableau de chaînes de caractères
                language:
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  nullable: true
                  description: >-
                    Langue extraite de la page, peut être une chaîne ou un
                    tableau de chaînes de caractères
                sourceURL:
                  type: string
                  format: uri
                  description: >-
                    L’URL initialement demandée. Elle peut différer de l’URL
                    finale de la page si des redirections ont été appliquées.
                url:
                  type: string
                  format: uri
                  description: >-
                    L’URL finale de la page après application de l’ensemble des
                    redirections.
                keywords:
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  description: >-
                    Mots-clés extraits de la page, sous forme d’une chaîne ou
                    d’un tableau de chaînes
                ogLocaleAlternate:
                  type: array
                  items:
                    type: string
                  description: Autres paramètres régionaux pour la page
                '<any other metadata> ':
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  description: >-
                    Autres métadonnées extraites du HTML, sous forme de chaîne
                    ou de tableau de chaînes
                statusCode:
                  type: integer
                  description: Le code de statut de la page
                contentType:
                  type: string
                  description: >-
                    Le type de contenu (type MIME) de la page, par exemple
                    text/html, application/pdf
                error:
                  type: string
                  nullable: true
                  description: Le message d’erreur de la page
                concurrencyLimited:
                  type: boolean
                  description: >-
                    Indique si ce scrape a été ralenti en raison des limites de
                    concurrence de l’Équipe
                concurrencyQueueDurationMs:
                  type: number
                  description: >-
                    Temps d’attente de la requête dans la file de concurrence,
                    en millisecondes. Présent uniquement lorsque
                    concurrencyLimited est défini sur true.
            warning:
              type: string
              nullable: true
              description: >-
                Peut être affiché lorsque vous utilisez l’extraction LLM. Un
                message d’avertissement vous indiquera tout problème lors de
                l’extraction.
            changeTracking:
              type: object
              nullable: true
              description: >-
                Informations de suivi des modifications si `changeTracking`
                figure dans `formats`. Uniquement présent lorsque le format
                `changeTracking` est demandé.
              properties:
                previousScrapeAt:
                  type: string
                  format: date-time
                  nullable: true
                  description: >-
                    L’horodatage du précédent scrape auquel la page actuelle est
                    comparée. Null s’il n’y a eu aucun scrape précédent.
                changeStatus:
                  type: string
                  enum:
                    - new
                    - same
                    - changed
                    - removed
                  description: >-
                    Le résultat de la comparaison entre les deux versions de la
                    page. « new » signifie que cette page n’existait pas
                    auparavant, « same » indique que le contenu n’a pas changé,
                    « changed » indique que le contenu a été modifié, « removed
                    » signifie que la page a été supprimée.
                visibility:
                  type: string
                  enum:
                    - visible
                    - hidden
                  description: >-
                    La visibilité de la page/URL actuelle. « visible » signifie
                    que l’URL a été découverte via une voie organique (liens ou
                    sitemap), « hidden » signifie que l’URL a été découverte à
                    partir de la mémoire de crawls précédents.
                diff:
                  type: string
                  nullable: true
                  description: >-
                    Diff des modifications au format Git lors de l’utilisation
                    du mode « git-diff ». Uniquement présent lorsque le mode est
                    activé sur « git-diff ».
                json:
                  type: object
                  nullable: true
                  description: >-
                    Résultats de comparaison JSON lors de l’utilisation du mode
                    `json`. Uniquement disponible lorsque le mode est défini sur
                    `json`. Produit une liste de toutes les clés et de leurs
                    valeurs à partir des extractions `previous` et `current`, en
                    fonction du type défini dans le `schema`. Exemple
                    [ici](/features/change-tracking)
            branding:
              type: object
              nullable: true
              description: >-
                Informations de branding extraites de la page si `branding`
                figure dans `formats`. Inclut les couleurs, les polices, la
                typographie, l’espacement, les composants, et plus encore.
              properties:
                colorScheme:
                  type: string
                  enum:
                    - light
                    - dark
                  description: Palette de couleurs détectée sur la page.
                logo:
                  type: string
                  nullable: true
                  description: URL du logo principal.
                colors:
                  type: object
                  nullable: true
                  description: Couleurs de la marque extraites à partir de la page.
                  properties:
                    primary:
                      type: string
                      description: Couleur principale de la marque (hex).
                    secondary:
                      type: string
                      description: Couleur secondaire de la marque (hex).
                    accent:
                      type: string
                      description: Couleur d’accent (hex).
                    background:
                      type: string
                      description: Couleur d’arrière-plan (hex).
                    textPrimary:
                      type: string
                      description: Couleur principale du texte (hex).
                    textSecondary:
                      type: string
                      description: Couleur secondaire du texte (hex).
                    link:
                      type: string
                      description: Couleur des liens (hex).
                    success:
                      type: string
                      description: Couleur de succès/état positif (hex).
                    warning:
                      type: string
                      description: Couleur d’avertissement (hex).
                    error:
                      type: string
                      description: Couleur d’erreur/de danger (hex).
                fonts:
                  type: array
                  nullable: true
                  description: Tableau des familles de polices utilisées sur la page.
                  items:
                    type: object
                    properties:
                      family:
                        type: string
                        description: Nom de la famille de polices.
                typography:
                  type: object
                  nullable: true
                  description: Informations détaillées sur la typographie.
                  properties:
                    fontFamilies:
                      type: object
                      description: Familles de polices par rôle.
                      properties:
                        primary:
                          type: string
                          description: Famille de polices principale.
                        heading:
                          type: string
                          description: Famille de polices des titres.
                        code:
                          type: string
                          description: >-
                            Famille de polices pour le code/police à chasse fixe
                            (monospace).
                    fontSizes:
                      type: object
                      description: >-
                        Tailles de police pour les différents niveaux
                        typographiques.
                      properties:
                        h1:
                          type: string
                        h2:
                          type: string
                        h3:
                          type: string
                        body:
                          type: string
                    fontWeights:
                      type: object
                      description: Définition des graisses de police.
                      properties:
                        light:
                          type: integer
                        regular:
                          type: integer
                        medium:
                          type: integer
                        bold:
                          type: integer
                    lineHeights:
                      type: object
                      description: Valeurs d’interligne pour les différents types de texte.
                      properties:
                        heading:
                          type: string
                        body:
                          type: string
                spacing:
                  type: object
                  nullable: true
                  description: Paramètres d’espacement et de mise en page.
                  properties:
                    baseUnit:
                      type: integer
                      description: Unité de base d’espacement en pixels.
                    borderRadius:
                      type: string
                      description: Rayon de bordure (border-radius) par défaut.
                    padding:
                      type: object
                      description: Valeurs de remplissage (padding).
                    margins:
                      type: object
                      description: Valeurs de marge (margin).
                components:
                  type: object
                  nullable: true
                  description: Styles des composants d’interface (UI).
                  properties:
                    buttonPrimary:
                      type: object
                      description: Styles des boutons principaux (boutons primaires).
                      properties:
                        background:
                          type: string
                        textColor:
                          type: string
                        borderRadius:
                          type: string
                    buttonSecondary:
                      type: object
                      description: Styles pour les boutons secondaires.
                      properties:
                        background:
                          type: string
                        textColor:
                          type: string
                        borderColor:
                          type: string
                        borderRadius:
                          type: string
                    input:
                      type: object
                      description: Styles des champs de saisie.
                icons:
                  type: object
                  nullable: true
                  description: Styles des icônes.
                images:
                  type: object
                  nullable: true
                  description: Images de marque.
                  properties:
                    logo:
                      type: string
                      description: URL de l’image du logo.
                    favicon:
                      type: string
                      description: URL du favicon.
                    ogImage:
                      type: string
                      description: URL de l’image Open Graph.
                animations:
                  type: object
                  nullable: true
                  description: Paramètres d’animation et de transition.
                layout:
                  type: object
                  nullable: true
                  description: >-
                    Configuration de la mise en page (grille, hauteurs d’en-tête
                    et de pied de page).
                personality:
                  type: object
                  nullable: true
                  description: >-
                    Caractéristiques de la personnalité de la marque (ton,
                    énergie, audience cible).
    Formats:
      type: array
      items:
        oneOf:
          - type: object
            title: Markdown
            properties:
              type:
                type: string
                enum:
                  - markdown
            required:
              - type
          - type: object
            title: Summary
            properties:
              type:
                type: string
                enum:
                  - summary
            required:
              - type
          - type: object
            title: HTML
            properties:
              type:
                type: string
                enum:
                  - html
            required:
              - type
          - type: object
            title: Raw HTML
            properties:
              type:
                type: string
                enum:
                  - rawHtml
            required:
              - type
          - type: object
            title: Links
            properties:
              type:
                type: string
                enum:
                  - links
            required:
              - type
          - type: object
            title: Images
            properties:
              type:
                type: string
                enum:
                  - images
            required:
              - type
          - type: object
            title: Screenshot
            properties:
              type:
                type: string
                enum:
                  - screenshot
              fullPage:
                type: boolean
                description: >-
                  Indique s’il faut prendre une capture d’écran de la page
                  entière (en ignorant viewport.height) ou seulement de la zone
                  actuellement visible (viewport).
                default: false
              quality:
                type: integer
                description: >-
                  La qualité de la capture d’écran, sur une échelle de 1 à 100.
                  100 correspond à la qualité maximale.
              viewport:
                type: object
                properties:
                  width:
                    type: integer
                    description: Largeur du viewport en pixels
                  height:
                    type: integer
                    description: La hauteur du viewport en pixels
                required:
                  - width
                  - height
            required:
              - type
          - type: object
            title: JSON
            properties:
              type:
                type: string
                enum:
                  - json
              schema:
                type: object
                description: >-
                  Le schéma à utiliser pour la sortie JSON. Doit être conforme à
                  [JSON Schema](https://json-schema.org/).
              prompt:
                type: string
                description: L’invite à utiliser pour la sortie au format JSON
            required:
              - type
          - type: object
            title: Change Tracking
            properties:
              type:
                type: string
                enum:
                  - changeTracking
              modes:
                type: array
                items:
                  type: string
                  enum:
                    - git-diff
                    - json
                description: >-
                  Le mode de suivi des modifications à utiliser. « git-diff »
                  fournit un diff détaillé, tandis que « json » compare les
                  données JSON extraites.
              schema:
                type: object
                description: >-
                  Schéma JSON pour l’extraction en mode « json ». Définit la
                  structure des données à extraire et à comparer. Doit être
                  conforme à [JSON Schema](https://json-schema.org/).
              prompt:
                type: string
                description: >-
                  Invite (prompt) à utiliser pour le suivi des modifications en
                  mode « json ». S’il n’est pas fourni, l’invite (prompt) par
                  défaut sera utilisée.
              tag:
                type: string
                nullable: true
                default: null
                description: >-
                  Tag à utiliser pour le suivi des modifications. Les tags
                  peuvent séparer l’historique du suivi des modifications en «
                  branches » distinctes, où le suivi avec un tag spécifique ne
                  sera comparé qu’aux extractions effectuées avec ce même tag.
                  S’il n’est pas fourni, le tag par défaut (null) sera utilisé.
            required:
              - type
          - type: object
            title: Branding
            properties:
              type:
                type: string
                enum:
                  - branding
            required:
              - type
          - type: object
            title: Audio
            description: >-
              Extraire l’audio (MP3) à partir d’URL vidéo compatibles, par ex.
              YouTube. Renvoie une URL GCS signée.
            properties:
              type:
                type: string
                enum:
                  - audio
            required:
              - type
          - type: object
            title: Video
            description: >-
              Extrait la vidéo de meilleure qualité à partir d'URL vidéo prises
              en charge, par ex. YouTube ou TikTok. Retourne une URL GCS signée.
            properties:
              type:
                type: string
                enum:
                  - video
            required:
              - type
          - type: object
            title: Question
            description: >-
              Posez une question en langage naturel sur la page. Retourne la
              réponse dans le champ `answer` de la réponse.
            properties:
              type:
                type: string
                enum:
                  - question
              question:
                type: string
                maxLength: 10000
                description: "La question à poser sur la page. Maximum\_: 10 000 caractères."
            required:
              - type
              - question
          - type: object
            title: Highlights
            description: >-
              Trouve le texte source pertinent sur la page. Retourne le texte
              sélectionné dans le champ `highlights` de la réponse.
            properties:
              type:
                type: string
                enum:
                  - highlights
              query:
                type: string
                maxLength: 10000
                description: "La requête de sélection de texte à exécuter sur la page. Maximum\_: 10 000 caractères."
            required:
              - type
              - query
      description: >-
        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: {...} }]`.
      default:
        - markdown
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````