# Mettre à jour un monitor (/fr/api-reference/endpoint/monitor-update)

<!-- agent-signals: reading_time_min: 77 · est_tokens: 63266 · updated: 2026-07-30 -->
Related: [Recherche](/fr/api-reference/endpoint/search.md), [Retour sur la recherche](/fr/api-reference/endpoint/search-feedback.md), [Scrape](/fr/api-reference/endpoint/scrape.md), [Scrape par lot](/fr/api-reference/endpoint/batch-scrape.md), [Obtenir l’état d’une extraction par lot](/fr/api-reference/endpoint/batch-scrape-get.md), [Annuler une extraction par lots](/fr/api-reference/endpoint/batch-scrape-delete.md)



`PATCH /monitor/{monitorId}`

Mettre à jour un monitor

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "description": "L’ID du monitor",
      "in": "path",
      "name": "monitorId",
      "required": true,
      "schema": {
        "format": "uuid",
        "type": "string"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "example": {
          "schedule": {
            "text": "every 15 minutes starting at :07"
          },
          "status": "active"
        },
        "schema": {
          "description": "Payload de mise à jour partielle du monitor. Incluez au moins un champ.",
          "properties": {
            "goal": {
              "description": "Objectif en langage naturel utilisé pour évaluer si les pages modifiées sont pertinentes. S’il est fourni et que `judgeEnabled` est omis, l’évaluation est activée automatiquement. Obligatoire (non vide) lorsqu’une cible est de type `search`, sauf si `judgeEnabled` est `false`.",
              "maxLength": 2000,
              "nullable": true,
              "type": "string"
            },
            "judgeEnabled": {
              "description": "Indique si les pages modifiées doivent être évaluées par rapport à `goal`. Nécessite un `goal` non vide pour s’exécuter.",
              "type": "boolean"
            },
            "name": {
              "maxLength": 256,
              "type": "string"
            },
            "notification": {
              "properties": {
                "email": {
                  "properties": {
                    "enabled": {
                      "default": false,
                      "type": "boolean"
                    },
                    "includeDiffs": {
                      "default": false,
                      "description": "Inclure les détails des pages modifiées dans les résumés par e-mail.",
                      "type": "boolean"
                    },
                    "recipients": {
                      "items": {
                        "format": "email",
                        "type": "string"
                      },
                      "maxItems": 25,
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "retentionDays": {
              "maximum": 365,
              "minimum": 1,
              "type": "integer"
            },
            "schedule": {
              "description": "Planification des vérifications du monitor. Fournissez soit `cron`, soit `text`.",
              "properties": {
                "cron": {
                  "description": "Expression cron à cinq champs. L’intervalle minimal est de 5 minutes.",
                  "example": "*/30 * * * *",
                  "type": "string"
                },
                "text": {
                  "description": "Planification en langage naturel. Les exemples pris en charge incluent `toutes les 30 minutes`, `toutes les 15 minutes à partir de :07`, `toutes les heures`, `toutes les 2 heures`, `tous les jours`, `tous les jours à 9:00`, `tous les jours à 9 h`, `tous les jours à 17:30` et `toutes les semaines`.",
                  "example": "every 30 minutes",
                  "type": "string"
                },
                "timezone": {
                  "default": "UTC",
                  "description": "Fuseau horaire IANA pour la planification.",
                  "example": "UTC",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "status": {
              "enum": [
                "active",
                "paused"
              ],
              "type": "string"
            },
            "targets": {
              "items": {
                "oneOf": [
                  {
                    "properties": {
                      "id": {
                        "description": "ID stable facultatif pour cette cible. Généré s’il est omis.",
                        "format": "uuid",
                        "type": "string"
                      },
                      "scrapeOptions": {
                        "properties": {
                          "actions": {
                            "description": "Actions à effectuer sur la page avant de récupérer le contenu",
                            "items": {
                              "oneOf": [
                                {
                                  "oneOf": [
                                    {
                                      "additionalProperties": false,
                                      "properties": {
                                        "milliseconds": {
                                          "description": "Nombre de millisecondes à attendre",
                                          "minimum": 1,
                                          "type": "integer"
                                        },
                                        "type": {
                                          "description": "Attendre un nombre spécifié de millisecondes",
                                          "enum": [
                                            "wait"
                                          ],
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "milliseconds"
                                      ],
                                      "title": "Wait by Duration",
                                      "type": "object"
                                    },
                                    {
                                      "additionalProperties": false,
                                      "properties": {
                                        "selector": {
                                          "description": "Sélecteur CSS à surveiller",
                                          "example": "#my-element",
                                          "type": "string"
                                        },
                                        "type": {
                                          "description": "Attendre l’apparition d’un élément spécifique",
                                          "enum": [
                                            "wait"
                                          ],
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "selector"
                                      ],
                                      "title": "Wait for Element",
                                      "type": "object"
                                    }
                                  ],
                                  "title": "Wait"
                                },
                                {
                                  "properties": {
                                    "fullPage": {
                                      "default": false,
                                      "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).",
                                      "type": "boolean"
                                    },
                                    "quality": {
                                      "description": "Qualité de la capture d’écran, de 1 à 100, 100 étant la meilleure qualité.",
                                      "type": "integer"
                                    },
                                    "type": {
                                      "description": "Prenez une capture d’écran. Les liens se trouveront dans le tableau `actions.screenshots` de la réponse.",
                                      "enum": [
                                        "screenshot"
                                      ],
                                      "type": "string"
                                    },
                                    "viewport": {
                                      "properties": {
                                        "height": {
                                          "description": "Hauteur du viewport en pixels",
                                          "type": "integer"
                                        },
                                        "width": {
                                          "description": "La largeur de la fenêtre d’affichage, en pixels",
                                          "type": "integer"
                                        }
                                      },
                                      "required": [
                                        "width",
                                        "height"
                                      ],
                                      "type": "object"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Screenshot",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "all": {
                                      "default": false,
                                      "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.",
                                      "type": "boolean"
                                    },
                                    "selector": {
                                      "description": "Sélecteur 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": "É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.",
                                      "enum": [
                                        "write"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "title": "Write text",
                                  "type": "object"
                                },
                                {
                                  "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": {
                                    "key": {
                                      "description": "Touche sur laquelle appuyer",
                                      "example": "Enter",
                                      "type": "string"
                                    },
                                    "type": {
                                      "description": "Appuyez sur une touche de la page",
                                      "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": "Faites 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 obtenu",
                                      "enum": [
                                        "A0",
                                        "A1",
                                        "A2",
                                        "A3",
                                        "A4",
                                        "A5",
                                        "A6",
                                        "Letter",
                                        "Legal",
                                        "Tabloid",
                                        "Ledger"
                                      ],
                                      "type": "string"
                                    },
                                    "landscape": {
                                      "default": false,
                                      "description": "Détermine s’il faut générer le PDF au format paysage",
                                      "type": "boolean"
                                    },
                                    "scale": {
                                      "default": 1,
                                      "description": "Facteur d’échelle du PDF généré",
                                      "type": "number"
                                    },
                                    "type": {
                                      "description": "Génère un PDF de la page en cours. 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"
                          },
                          "auditMetadata": {
                            "additionalProperties": false,
                            "description": "Informations d’attribution de l’utilisateur incluses dans les événements de journalisation SIEM lorsque SIEM Logging est activé pour l’organisation.",
                            "properties": {
                              "username": {
                                "description": "Le nom d’utilisateur associé à la requête.",
                                "maxLength": 1024,
                                "type": "string"
                              }
                            },
                            "required": [
                              "username"
                            ],
                            "type": "object"
                          },
                          "blockAds": {
                            "default": true,
                            "description": "Active le blocage des publicités et des fenêtres contextuelles de cookies.",
                            "type": "boolean"
                          },
                          "excludeTags": {
                            "description": "Balises à exclure du résultat.",
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "formats": {
                            "default": [
                              "markdown"
                            ],
                            "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: {...} }]`.",
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "markdown"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Markdown",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "summary"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Summary",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "html"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "HTML",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "rawHtml"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Raw HTML",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "links"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Links",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "images"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Images",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "fullPage": {
                                      "default": false,
                                      "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).",
                                      "type": "boolean"
                                    },
                                    "quality": {
                                      "description": "La qualité de la capture d’écran, sur une échelle de 1 à 100. 100 correspond à la qualité maximale.",
                                      "type": "integer"
                                    },
                                    "type": {
                                      "enum": [
                                        "screenshot"
                                      ],
                                      "type": "string"
                                    },
                                    "viewport": {
                                      "properties": {
                                        "height": {
                                          "description": "La hauteur du viewport en pixels",
                                          "type": "integer"
                                        },
                                        "width": {
                                          "description": "Largeur du viewport en pixels",
                                          "type": "integer"
                                        }
                                      },
                                      "required": [
                                        "width",
                                        "height"
                                      ],
                                      "type": "object"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Screenshot",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "prompt": {
                                      "description": "L’invite à utiliser pour la sortie au format JSON",
                                      "type": "string"
                                    },
                                    "schema": {
                                      "description": "Le schéma à utiliser pour la sortie JSON. Doit être conforme à [JSON Schema](https://json-schema.org/).",
                                      "type": "object"
                                    },
                                    "type": {
                                      "enum": [
                                        "json"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "JSON",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "modes": {
                                      "description": "Le mode de suivi des modifications à utiliser. « git-diff » fournit un diff détaillé, tandis que « json » compare les données JSON extraites.",
                                      "items": {
                                        "enum": [
                                          "git-diff",
                                          "json"
                                        ],
                                        "type": "string"
                                      },
                                      "type": "array"
                                    },
                                    "prompt": {
                                      "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.",
                                      "type": "string"
                                    },
                                    "schema": {
                                      "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/).",
                                      "type": "object"
                                    },
                                    "tag": {
                                      "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é.",
                                      "nullable": true,
                                      "type": "string"
                                    },
                                    "type": {
                                      "enum": [
                                        "changeTracking"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Change Tracking",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "branding"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Branding",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "product"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Product",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "menu"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Menu",
                                  "type": "object"
                                },
                                {
                                  "description": "Extrait l’audio (MP3) depuis des URL vidéo prises en charge, par ex. YouTube. Renvoie une URL GCS signée.",
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "audio"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Audio",
                                  "type": "object"
                                },
                                {
                                  "description": "Extrait la vidéo dans la meilleure qualité depuis des URL vidéo prises en charge, par ex. YouTube. Renvoie une URL GCS signée.",
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "video"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Video",
                                  "type": "object"
                                },
                                {
                                  "description": "Pose une question en langage naturel sur la page. Renvoie la réponse dans le champ `answer` de la réponse.",
                                  "properties": {
                                    "question": {
                                      "description": "La question à laquelle répondre sur la page. Maximum 10 000 caractères.",
                                      "maxLength": 10000,
                                      "type": "string"
                                    },
                                    "type": {
                                      "enum": [
                                        "question"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "question"
                                  ],
                                  "title": "Question",
                                  "type": "object"
                                },
                                {
                                  "description": "Trouve le texte source pertinent sur la page. Renvoie le texte sélectionné dans le champ `highlights` de la réponse.",
                                  "properties": {
                                    "query": {
                                      "description": "La requête de sélection de texte à exécuter sur la page. Maximum 10 000 caractères.",
                                      "maxLength": 10000,
                                      "type": "string"
                                    },
                                    "type": {
                                      "enum": [
                                        "highlights"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "query"
                                  ],
                                  "title": "Highlights",
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "headers": {
                            "description": "En-têtes à inclure dans la requête. Peuvent être utilisés pour envoyer des cookies, un user-agent, etc.",
                            "type": "object"
                          },
                          "includeTags": {
                            "description": "Balises à inclure dans le résultat.",
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "location": {
                            "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": {
                                "default": "US",
                                "description": "Code de pays ISO 3166-1 alpha-2 (p. 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é. 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": {
                                  "example": "en-US",
                                  "type": "string"
                                },
                                "type": "array"
                              }
                            },
                            "type": "object"
                          },
                          "lockdown": {
                            "default": false,
                            "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.",
                            "type": "boolean"
                          },
                          "maxAge": {
                            "default": 172800000,
                            "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.",
                            "type": "integer"
                          },
                          "minAge": {
                            "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.",
                            "type": "integer"
                          },
                          "mobile": {
                            "default": false,
                            "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.",
                            "type": "boolean"
                          },
                          "onlyCleanContent": {
                            "default": false,
                            "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.",
                            "type": "boolean"
                          },
                          "onlyMainContent": {
                            "default": true,
                            "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.",
                            "type": "boolean"
                          },
                          "parsers": {
                            "default": [
                              "pdf"
                            ],
                            "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": [
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "maxPages": {
                                      "description": "Nombre maximal de pages du PDF à analyser. Doit être un entier positif inférieur ou égal à 10 000.",
                                      "maximum": 10000,
                                      "minimum": 1,
                                      "type": "integer"
                                    },
                                    "mode": {
                                      "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.",
                                      "enum": [
                                        "fast",
                                        "auto",
                                        "ocr"
                                      ],
                                      "type": "string"
                                    },
                                    "type": {
                                      "enum": [
                                        "pdf"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "profile": {
                            "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": {
                                "description": "Nom du profil. Les scrapes portant le même nom partagent l’état du navigateur (cookies, localStorage, sessions).",
                                "maxLength": 128,
                                "minLength": 1,
                                "type": "string"
                              },
                              "saveChanges": {
                                "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.",
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "name"
                            ],
                            "type": "object"
                          },
                          "proxy": {
                            "default": "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é.",
                            "enum": [
                              "basic",
                              "enhanced",
                              "auto"
                            ],
                            "type": "string"
                          },
                          "redactPII": {
                            "default": false,
                            "description": "Masquez les données personnelles identifiables dans le markdown renvoyé. Passez `true` pour utiliser les valeurs par défaut, ou un objet pour ajuster le mode, les entités et le style de remplacement.",
                            "oneOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "additionalProperties": false,
                                "description": "Options de réglage du masquage des PII.",
                                "properties": {
                                  "entities": {
                                    "description": "Limitez le masquage à ces groupes d'entités. Si ce champ est omis, toutes les entités prises en charge sont masquées.",
                                    "items": {
                                      "description": "Groupes d'entités PII publiques pris en charge par le masquage de Firecrawl.",
                                      "enum": [
                                        "PERSON",
                                        "EMAIL",
                                        "PHONE",
                                        "LOCATION",
                                        "FINANCIAL",
                                        "SECRET"
                                      ],
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "mode": {
                                    "default": "accurate",
                                    "description": "Stratégie de masquage. `accurate` utilise uniquement le modèle et est optimisée pour la précision, `aggressive` augmente le rappel grâce à des heuristiques supplémentaires, et `fast` utilise des heuristiques sans appel au modèle.",
                                    "enum": [
                                      "accurate",
                                      "aggressive",
                                      "fast"
                                    ],
                                    "type": "string"
                                  },
                                  "replaceStyle": {
                                    "default": "tag",
                                    "description": "`tag` remplace les portions de texte par des marqueurs comme `<EMAIL>`, `mask` remplace les caractères par `*`, et `remove` supprime le texte de la portion.",
                                    "enum": [
                                      "tag",
                                      "mask",
                                      "remove"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              }
                            ]
                          },
                          "removeBase64Images": {
                            "default": true,
                            "description": "<[\n  {\n    \"key\": \"0\",\n    \"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é.\"\n  }\n]</>",
                            "type": "boolean"
                          },
                          "skipTlsVerification": {
                            "default": true,
                            "description": "Ignorer la vérification du certificat TLS lors des 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 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.",
                            "type": "boolean"
                          },
                          "threatProtection": {
                            "description": "Dérogation [Protection contre les menaces](https://docs.firecrawl.dev/features/threat-protection) au niveau de la requête. 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 qui inclut cet objet est rejetée avec un code 403. Si la Protection contre les menaces est appliquée à 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 motifs avec joker (`*.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 classifieur est injoignable : `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 analysée).",
                                "enum": [
                                  "off",
                                  "normal"
                                ],
                                "type": "string"
                              },
                              "riskScoreThreshold": {
                                "description": "Score de risque normalisé (0–100) à partir duquel une décision du classifieur bloque l’URL. Plus il est faible, plus le filtrage est strict.",
                                "example": 75,
                                "maximum": 100,
                                "minimum": 0,
                                "type": "integer"
                              },
                              "whitelist": {
                                "description": "Domaines à toujours autoriser, sous forme de domaines simples ou de motifs avec joker. Prend le pas sur toutes les autres règles.",
                                "items": {
                                  "type": "string"
                                },
                                "maxItems": 1000,
                                "type": "array"
                              }
                            },
                            "title": "Threat Protection Override",
                            "type": "object"
                          },
                          "timeout": {
                            "default": 60000,
                            "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).",
                            "maximum": 300000,
                            "minimum": 1000,
                            "type": "integer"
                          },
                          "waitFor": {
                            "default": 0,
                            "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.",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": {
                        "enum": [
                          "scrape"
                        ],
                        "type": "string"
                      },
                      "urls": {
                        "items": {
                          "format": "uri",
                          "type": "string"
                        },
                        "minItems": 1,
                        "type": "array"
                      }
                    },
                    "required": [
                      "type",
                      "urls"
                    ],
                    "title": "Scrape target",
                    "type": "object"
                  },
                  {
                    "properties": {
                      "crawlOptions": {
                        "description": "Options de crawl telles que `limit`, `maxDepth`, `includePaths` et `excludePaths`.",
                        "type": "object"
                      },
                      "id": {
                        "description": "ID stable facultatif pour cette cible. Généré s’il est omis.",
                        "format": "uuid",
                        "type": "string"
                      },
                      "scrapeOptions": {
                        "properties": {
                          "actions": {
                            "description": "Actions à effectuer sur la page avant de récupérer le contenu",
                            "items": {
                              "oneOf": [
                                {
                                  "oneOf": [
                                    {
                                      "additionalProperties": false,
                                      "properties": {
                                        "milliseconds": {
                                          "description": "Nombre de millisecondes à attendre",
                                          "minimum": 1,
                                          "type": "integer"
                                        },
                                        "type": {
                                          "description": "Attendre un nombre spécifié de millisecondes",
                                          "enum": [
                                            "wait"
                                          ],
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "milliseconds"
                                      ],
                                      "title": "Wait by Duration",
                                      "type": "object"
                                    },
                                    {
                                      "additionalProperties": false,
                                      "properties": {
                                        "selector": {
                                          "description": "Sélecteur CSS à surveiller",
                                          "example": "#my-element",
                                          "type": "string"
                                        },
                                        "type": {
                                          "description": "Attendre l’apparition d’un élément spécifique",
                                          "enum": [
                                            "wait"
                                          ],
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "selector"
                                      ],
                                      "title": "Wait for Element",
                                      "type": "object"
                                    }
                                  ],
                                  "title": "Wait"
                                },
                                {
                                  "properties": {
                                    "fullPage": {
                                      "default": false,
                                      "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).",
                                      "type": "boolean"
                                    },
                                    "quality": {
                                      "description": "Qualité de la capture d’écran, de 1 à 100, 100 étant la meilleure qualité.",
                                      "type": "integer"
                                    },
                                    "type": {
                                      "description": "Prenez une capture d’écran. Les liens se trouveront dans le tableau `actions.screenshots` de la réponse.",
                                      "enum": [
                                        "screenshot"
                                      ],
                                      "type": "string"
                                    },
                                    "viewport": {
                                      "properties": {
                                        "height": {
                                          "description": "Hauteur du viewport en pixels",
                                          "type": "integer"
                                        },
                                        "width": {
                                          "description": "La largeur de la fenêtre d’affichage, en pixels",
                                          "type": "integer"
                                        }
                                      },
                                      "required": [
                                        "width",
                                        "height"
                                      ],
                                      "type": "object"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Screenshot",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "all": {
                                      "default": false,
                                      "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.",
                                      "type": "boolean"
                                    },
                                    "selector": {
                                      "description": "Sélecteur 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": "É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.",
                                      "enum": [
                                        "write"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "title": "Write text",
                                  "type": "object"
                                },
                                {
                                  "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": {
                                    "key": {
                                      "description": "Touche sur laquelle appuyer",
                                      "example": "Enter",
                                      "type": "string"
                                    },
                                    "type": {
                                      "description": "Appuyez sur une touche de la page",
                                      "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": "Faites 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 obtenu",
                                      "enum": [
                                        "A0",
                                        "A1",
                                        "A2",
                                        "A3",
                                        "A4",
                                        "A5",
                                        "A6",
                                        "Letter",
                                        "Legal",
                                        "Tabloid",
                                        "Ledger"
                                      ],
                                      "type": "string"
                                    },
                                    "landscape": {
                                      "default": false,
                                      "description": "Détermine s’il faut générer le PDF au format paysage",
                                      "type": "boolean"
                                    },
                                    "scale": {
                                      "default": 1,
                                      "description": "Facteur d’échelle du PDF généré",
                                      "type": "number"
                                    },
                                    "type": {
                                      "description": "Génère un PDF de la page en cours. 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"
                          },
                          "auditMetadata": {
                            "additionalProperties": false,
                            "description": "Informations d’attribution de l’utilisateur incluses dans les événements de journalisation SIEM lorsque SIEM Logging est activé pour l’organisation.",
                            "properties": {
                              "username": {
                                "description": "Le nom d’utilisateur associé à la requête.",
                                "maxLength": 1024,
                                "type": "string"
                              }
                            },
                            "required": [
                              "username"
                            ],
                            "type": "object"
                          },
                          "blockAds": {
                            "default": true,
                            "description": "Active le blocage des publicités et des fenêtres contextuelles de cookies.",
                            "type": "boolean"
                          },
                          "excludeTags": {
                            "description": "Balises à exclure du résultat.",
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "formats": {
                            "default": [
                              "markdown"
                            ],
                            "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: {...} }]`.",
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "markdown"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Markdown",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "summary"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Summary",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "html"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "HTML",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "rawHtml"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Raw HTML",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "links"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Links",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "images"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Images",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "fullPage": {
                                      "default": false,
                                      "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).",
                                      "type": "boolean"
                                    },
                                    "quality": {
                                      "description": "La qualité de la capture d’écran, sur une échelle de 1 à 100. 100 correspond à la qualité maximale.",
                                      "type": "integer"
                                    },
                                    "type": {
                                      "enum": [
                                        "screenshot"
                                      ],
                                      "type": "string"
                                    },
                                    "viewport": {
                                      "properties": {
                                        "height": {
                                          "description": "La hauteur du viewport en pixels",
                                          "type": "integer"
                                        },
                                        "width": {
                                          "description": "Largeur du viewport en pixels",
                                          "type": "integer"
                                        }
                                      },
                                      "required": [
                                        "width",
                                        "height"
                                      ],
                                      "type": "object"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Screenshot",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "prompt": {
                                      "description": "L’invite à utiliser pour la sortie au format JSON",
                                      "type": "string"
                                    },
                                    "schema": {
                                      "description": "Le schéma à utiliser pour la sortie JSON. Doit être conforme à [JSON Schema](https://json-schema.org/).",
                                      "type": "object"
                                    },
                                    "type": {
                                      "enum": [
                                        "json"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "JSON",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "modes": {
                                      "description": "Le mode de suivi des modifications à utiliser. « git-diff » fournit un diff détaillé, tandis que « json » compare les données JSON extraites.",
                                      "items": {
                                        "enum": [
                                          "git-diff",
                                          "json"
                                        ],
                                        "type": "string"
                                      },
                                      "type": "array"
                                    },
                                    "prompt": {
                                      "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.",
                                      "type": "string"
                                    },
                                    "schema": {
                                      "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/).",
                                      "type": "object"
                                    },
                                    "tag": {
                                      "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é.",
                                      "nullable": true,
                                      "type": "string"
                                    },
                                    "type": {
                                      "enum": [
                                        "changeTracking"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Change Tracking",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "branding"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Branding",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "product"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Product",
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "menu"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Menu",
                                  "type": "object"
                                },
                                {
                                  "description": "Extrait l’audio (MP3) depuis des URL vidéo prises en charge, par ex. YouTube. Renvoie une URL GCS signée.",
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "audio"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Audio",
                                  "type": "object"
                                },
                                {
                                  "description": "Extrait la vidéo dans la meilleure qualité depuis des URL vidéo prises en charge, par ex. YouTube. Renvoie une URL GCS signée.",
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "video"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "title": "Video",
                                  "type": "object"
                                },
                                {
                                  "description": "Pose une question en langage naturel sur la page. Renvoie la réponse dans le champ `answer` de la réponse.",
                                  "properties": {
                                    "question": {
                                      "description": "La question à laquelle répondre sur la page. Maximum 10 000 caractères.",
                                      "maxLength": 10000,
                                      "type": "string"
                                    },
                                    "type": {
                                      "enum": [
                                        "question"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "question"
                                  ],
                                  "title": "Question",
                                  "type": "object"
                                },
                                {
                                  "description": "Trouve le texte source pertinent sur la page. Renvoie le texte sélectionné dans le champ `highlights` de la réponse.",
                                  "properties": {
                                    "query": {
                                      "description": "La requête de sélection de texte à exécuter sur la page. Maximum 10 000 caractères.",
                                      "maxLength": 10000,
                                      "type": "string"
                                    },
                                    "type": {
                                      "enum": [
                                        "highlights"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "query"
                                  ],
                                  "title": "Highlights",
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "headers": {
                            "description": "En-têtes à inclure dans la requête. Peuvent être utilisés pour envoyer des cookies, un user-agent, etc.",
                            "type": "object"
                          },
                          "includeTags": {
                            "description": "Balises à inclure dans le résultat.",
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "location": {
                            "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": {
                                "default": "US",
                                "description": "Code de pays ISO 3166-1 alpha-2 (p. 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é. 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": {
                                  "example": "en-US",
                                  "type": "string"
                                },
                                "type": "array"
                              }
                            },
                            "type": "object"
                          },
                          "lockdown": {
                            "default": false,
                            "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.",
                            "type": "boolean"
                          },
                          "maxAge": {
                            "default": 172800000,
                            "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.",
                            "type": "integer"
                          },
                          "minAge": {
                            "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.",
                            "type": "integer"
                          },
                          "mobile": {
                            "default": false,
                            "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.",
                            "type": "boolean"
                          },
                          "onlyCleanContent": {
                            "default": false,
                            "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.",
                            "type": "boolean"
                          },
                          "onlyMainContent": {
                            "default": true,
                            "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.",
                            "type": "boolean"
                          },
                          "parsers": {
                            "default": [
                              "pdf"
                            ],
                            "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": [
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "maxPages": {
                                      "description": "Nombre maximal de pages du PDF à analyser. Doit être un entier positif inférieur ou égal à 10 000.",
                                      "maximum": 10000,
                                      "minimum": 1,
                                      "type": "integer"
                                    },
                                    "mode": {
                                      "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.",
                                      "enum": [
                                        "fast",
                                        "auto",
                                        "ocr"
                                      ],
                                      "type": "string"
                                    },
                                    "type": {
                                      "enum": [
                                        "pdf"
                                      ],
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "profile": {
                            "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": {
                                "description": "Nom du profil. Les scrapes portant le même nom partagent l’état du navigateur (cookies, localStorage, sessions).",
                                "maxLength": 128,
                                "minLength": 1,
                                "type": "string"
                              },
                              "saveChanges": {
                                "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.",
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "name"
                            ],
                            "type": "object"
                          },
                          "proxy": {
                            "default": "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é.",
                            "enum": [
                              "basic",
                              "enhanced",
                              "auto"
                            ],
                            "type": "string"
                          },
                          "redactPII": {
                            "default": false,
                            "description": "Masquez les données personnelles identifiables dans le markdown renvoyé. Passez `true` pour utiliser les valeurs par défaut, ou un objet pour ajuster le mode, les entités et le style de remplacement.",
                            "oneOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "additionalProperties": false,
                                "description": "Options de réglage du masquage des PII.",
                                "properties": {
                                  "entities": {
                                    "description": "Limitez le masquage à ces groupes d'entités. Si ce champ est omis, toutes les entités prises en charge sont masquées.",
                                    "items": {
                                      "description": "Groupes d'entités PII publiques pris en charge par le masquage de Firecrawl.",
                                      "enum": [
                                        "PERSON",
                                        "EMAIL",
                                        "PHONE",
                                        "LOCATION",
                                        "FINANCIAL",
                                        "SECRET"
                                      ],
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "mode": {
                                    "default": "accurate",
                                    "description": "Stratégie de masquage. `accurate` utilise uniquement le modèle et est optimisée pour la précision, `aggressive` augmente le rappel grâce à des heuristiques supplémentaires, et `fast` utilise des heuristiques sans appel au modèle.",
                                    "enum": [
                                      "accurate",
                                      "aggressive",
                                      "fast"
                                    ],
                                    "type": "string"
                                  },
                                  "replaceStyle": {
                                    "default": "tag",
                                    "description": "`tag` remplace les portions de texte par des marqueurs comme `<EMAIL>`, `mask` remplace les caractères par `*`, et `remove` supprime le texte de la portion.",
                                    "enum": [
                                      "tag",
                                      "mask",
                                      "remove"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "type": "object"
                              }
                            ]
                          },
                          "removeBase64Images": {
                            "default": true,
                            "description": "<[\n  {\n    \"key\": \"0\",\n    \"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é.\"\n  }\n]</>",
                            "type": "boolean"
                          },
                          "skipTlsVerification": {
                            "default": true,
                            "description": "Ignorer la vérification du certificat TLS lors des 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 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.",
                            "type": "boolean"
                          },
                          "threatProtection": {
                            "description": "Dérogation [Protection contre les menaces](https://docs.firecrawl.dev/features/threat-protection) au niveau de la requête. 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 qui inclut cet objet est rejetée avec un code 403. Si la Protection contre les menaces est appliquée à 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 motifs avec joker (`*.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 classifieur est injoignable : `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 analysée).",
                                "enum": [
                                  "off",
                                  "normal"
                                ],
                                "type": "string"
                              },
                              "riskScoreThreshold": {
                                "description": "Score de risque normalisé (0–100) à partir duquel une décision du classifieur bloque l’URL. Plus il est faible, plus le filtrage est strict.",
                                "example": 75,
                                "maximum": 100,
                                "minimum": 0,
                                "type": "integer"
                              },
                              "whitelist": {
                                "description": "Domaines à toujours autoriser, sous forme de domaines simples ou de motifs avec joker. Prend le pas sur toutes les autres règles.",
                                "items": {
                                  "type": "string"
                                },
                                "maxItems": 1000,
                                "type": "array"
                              }
                            },
                            "title": "Threat Protection Override",
                            "type": "object"
                          },
                          "timeout": {
                            "default": 60000,
                            "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).",
                            "maximum": 300000,
                            "minimum": 1000,
                            "type": "integer"
                          },
                          "waitFor": {
                            "default": 0,
                            "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.",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": {
                        "enum": [
                          "crawl"
                        ],
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "url"
                    ],
                    "title": "Crawl target",
                    "type": "object"
                  },
                  {
                    "description": "Exécute des requêtes de recherche web à chaque vérification et envoie des alertes pour les nouveaux résultats correspondant à l’objectif du monitor. Nécessite un `goal` de premier niveau non vide sur le monitor, sauf si `judgeEnabled` est `false`.",
                    "properties": {
                      "excludeDomains": {
                        "description": "Facultatif. Exclure les résultats provenant de ces domaines.",
                        "items": {
                          "type": "string"
                        },
                        "maxItems": 50,
                        "type": "array"
                      },
                      "id": {
                        "description": "ID stable facultatif pour cette cible. Généré s’il est omis.",
                        "format": "uuid",
                        "type": "string"
                      },
                      "includeDomains": {
                        "description": "Facultatif. Limiter les résultats à ces domaines.",
                        "items": {
                          "type": "string"
                        },
                        "maxItems": 50,
                        "type": "array"
                      },
                      "maxResults": {
                        "default": 10,
                        "description": "Nombre total de résultats à évaluer par vérification, fusionnés et dédupliqués sur l’ensemble des requêtes (plafond global, et non par requête).",
                        "maximum": 50,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "queries": {
                        "description": "Requêtes de recherche à exécuter à chaque vérification (1 à 12).",
                        "items": {
                          "maxLength": 256,
                          "minLength": 1,
                          "type": "string"
                        },
                        "maxItems": 12,
                        "minItems": 1,
                        "type": "array"
                      },
                      "searchWindow": {
                        "default": "24h",
                        "description": "Filtre de récence — prend uniquement en compte les résultats publiés dans cette période.",
                        "enum": [
                          "5m",
                          "15m",
                          "1h",
                          "6h",
                          "24h",
                          "7d"
                        ],
                        "type": "string"
                      },
                      "type": {
                        "enum": [
                          "search"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "queries"
                    ],
                    "title": "Search target",
                    "type": "object"
                  }
                ]
              },
              "maxItems": 50,
              "minItems": 1,
              "type": "array"
            },
            "webhook": {
              "description": "Destination du webhook pour les événements de page du monitor et de fin de vérification.",
              "properties": {
                "events": {
                  "description": "Événements webhook du monitor à recevoir. Par défaut, tous les événements du monitor sont reçus.",
                  "items": {
                    "enum": [
                      "monitor.page",
                      "monitor.check.completed"
                    ],
                    "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 incluses dans les payloads des webhooks.",
                  "type": "object"
                },
                "url": {
                  "description": "URL à laquelle envoyer les webhooks du monitor.",
                  "format": "uri",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            }
          },
          "type": "object"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "data": {
                "properties": {
                  "createdAt": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "currentCheckId": {
                    "format": "uuid",
                    "nullable": true,
                    "type": "string"
                  },
                  "estimatedCreditsPerMonth": {
                    "description": "Estimation mensuelle maximale des crédits. Lorsque l’évaluation est activée, l’usage réel peut être inférieur, car les crédits d’évaluation ne sont facturés que pour les pages modifiées qui sont évaluées.",
                    "nullable": true,
                    "type": "integer"
                  },
                  "goal": {
                    "nullable": true,
                    "type": "string"
                  },
                  "id": {
                    "format": "uuid",
                    "type": "string"
                  },
                  "judgeEnabled": {
                    "type": "boolean"
                  },
                  "lastCheckSummary": {
                    "properties": {
                      "changed": {
                        "type": "integer"
                      },
                      "error": {
                        "type": "integer"
                      },
                      "new": {
                        "type": "integer"
                      },
                      "removed": {
                        "type": "integer"
                      },
                      "same": {
                        "type": "integer"
                      },
                      "totalPages": {
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "lastRunAt": {
                    "format": "date-time",
                    "nullable": true,
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "nextRunAt": {
                    "format": "date-time",
                    "nullable": true,
                    "type": "string"
                  },
                  "notification": {
                    "properties": {
                      "email": {
                        "properties": {
                          "enabled": {
                            "default": false,
                            "type": "boolean"
                          },
                          "includeDiffs": {
                            "default": false,
                            "description": "Inclure les détails des pages modifiées dans les résumés par e-mail.",
                            "type": "boolean"
                          },
                          "recipients": {
                            "items": {
                              "format": "email",
                              "type": "string"
                            },
                            "maxItems": 25,
                            "type": "array"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "retentionDays": {
                    "type": "integer"
                  },
                  "schedule": {
                    "properties": {
                      "cron": {
                        "type": "string"
                      },
                      "timezone": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "status": {
                    "enum": [
                      "active",
                      "paused",
                      "deleted"
                    ],
                    "type": "string"
                  },
                  "targets": {
                    "items": {
                      "oneOf": [
                        {
                          "properties": {
                            "id": {
                              "description": "ID stable facultatif pour cette cible. Généré s’il est omis.",
                              "format": "uuid",
                              "type": "string"
                            },
                            "scrapeOptions": {
                              "properties": {
                                "actions": {
                                  "description": "Actions à effectuer sur la page avant de récupérer le contenu",
                                  "items": {
                                    "oneOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "additionalProperties": false,
                                            "properties": {
                                              "milliseconds": {
                                                "description": "Nombre de millisecondes à attendre",
                                                "minimum": 1,
                                                "type": "integer"
                                              },
                                              "type": {
                                                "description": "Attendre un nombre spécifié de millisecondes",
                                                "enum": [
                                                  "wait"
                                                ],
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "type",
                                              "milliseconds"
                                            ],
                                            "title": "Wait by Duration",
                                            "type": "object"
                                          },
                                          {
                                            "additionalProperties": false,
                                            "properties": {
                                              "selector": {
                                                "description": "Sélecteur CSS à surveiller",
                                                "example": "#my-element",
                                                "type": "string"
                                              },
                                              "type": {
                                                "description": "Attendre l’apparition d’un élément spécifique",
                                                "enum": [
                                                  "wait"
                                                ],
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "type",
                                              "selector"
                                            ],
                                            "title": "Wait for Element",
                                            "type": "object"
                                          }
                                        ],
                                        "title": "Wait"
                                      },
                                      {
                                        "properties": {
                                          "fullPage": {
                                            "default": false,
                                            "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).",
                                            "type": "boolean"
                                          },
                                          "quality": {
                                            "description": "Qualité de la capture d’écran, de 1 à 100, 100 étant la meilleure qualité.",
                                            "type": "integer"
                                          },
                                          "type": {
                                            "description": "Prenez une capture d’écran. Les liens se trouveront dans le tableau `actions.screenshots` de la réponse.",
                                            "enum": [
                                              "screenshot"
                                            ],
                                            "type": "string"
                                          },
                                          "viewport": {
                                            "properties": {
                                              "height": {
                                                "description": "Hauteur du viewport en pixels",
                                                "type": "integer"
                                              },
                                              "width": {
                                                "description": "La largeur de la fenêtre d’affichage, en pixels",
                                                "type": "integer"
                                              }
                                            },
                                            "required": [
                                              "width",
                                              "height"
                                            ],
                                            "type": "object"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Screenshot",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "all": {
                                            "default": false,
                                            "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.",
                                            "type": "boolean"
                                          },
                                          "selector": {
                                            "description": "Sélecteur 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": "É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.",
                                            "enum": [
                                              "write"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "text"
                                        ],
                                        "title": "Write text",
                                        "type": "object"
                                      },
                                      {
                                        "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": {
                                          "key": {
                                            "description": "Touche sur laquelle appuyer",
                                            "example": "Enter",
                                            "type": "string"
                                          },
                                          "type": {
                                            "description": "Appuyez sur une touche de la page",
                                            "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": "Faites 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 obtenu",
                                            "enum": [
                                              "A0",
                                              "A1",
                                              "A2",
                                              "A3",
                                              "A4",
                                              "A5",
                                              "A6",
                                              "Letter",
                                              "Legal",
                                              "Tabloid",
                                              "Ledger"
                                            ],
                                            "type": "string"
                                          },
                                          "landscape": {
                                            "default": false,
                                            "description": "Détermine s’il faut générer le PDF au format paysage",
                                            "type": "boolean"
                                          },
                                          "scale": {
                                            "default": 1,
                                            "description": "Facteur d’échelle du PDF généré",
                                            "type": "number"
                                          },
                                          "type": {
                                            "description": "Génère un PDF de la page en cours. 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"
                                },
                                "auditMetadata": {
                                  "additionalProperties": false,
                                  "description": "Informations d’attribution de l’utilisateur incluses dans les événements de journalisation SIEM lorsque SIEM Logging est activé pour l’organisation.",
                                  "properties": {
                                    "username": {
                                      "description": "Le nom d’utilisateur associé à la requête.",
                                      "maxLength": 1024,
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "username"
                                  ],
                                  "type": "object"
                                },
                                "blockAds": {
                                  "default": true,
                                  "description": "Active le blocage des publicités et des fenêtres contextuelles de cookies.",
                                  "type": "boolean"
                                },
                                "excludeTags": {
                                  "description": "Balises à exclure du résultat.",
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array"
                                },
                                "formats": {
                                  "default": [
                                    "markdown"
                                  ],
                                  "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: {...} }]`.",
                                  "items": {
                                    "oneOf": [
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "markdown"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Markdown",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "summary"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Summary",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "html"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "HTML",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "rawHtml"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Raw HTML",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "links"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Links",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "images"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Images",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "fullPage": {
                                            "default": false,
                                            "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).",
                                            "type": "boolean"
                                          },
                                          "quality": {
                                            "description": "La qualité de la capture d’écran, sur une échelle de 1 à 100. 100 correspond à la qualité maximale.",
                                            "type": "integer"
                                          },
                                          "type": {
                                            "enum": [
                                              "screenshot"
                                            ],
                                            "type": "string"
                                          },
                                          "viewport": {
                                            "properties": {
                                              "height": {
                                                "description": "La hauteur du viewport en pixels",
                                                "type": "integer"
                                              },
                                              "width": {
                                                "description": "Largeur du viewport en pixels",
                                                "type": "integer"
                                              }
                                            },
                                            "required": [
                                              "width",
                                              "height"
                                            ],
                                            "type": "object"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Screenshot",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "prompt": {
                                            "description": "L’invite à utiliser pour la sortie au format JSON",
                                            "type": "string"
                                          },
                                          "schema": {
                                            "description": "Le schéma à utiliser pour la sortie JSON. Doit être conforme à [JSON Schema](https://json-schema.org/).",
                                            "type": "object"
                                          },
                                          "type": {
                                            "enum": [
                                              "json"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "JSON",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "modes": {
                                            "description": "Le mode de suivi des modifications à utiliser. « git-diff » fournit un diff détaillé, tandis que « json » compare les données JSON extraites.",
                                            "items": {
                                              "enum": [
                                                "git-diff",
                                                "json"
                                              ],
                                              "type": "string"
                                            },
                                            "type": "array"
                                          },
                                          "prompt": {
                                            "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.",
                                            "type": "string"
                                          },
                                          "schema": {
                                            "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/).",
                                            "type": "object"
                                          },
                                          "tag": {
                                            "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é.",
                                            "nullable": true,
                                            "type": "string"
                                          },
                                          "type": {
                                            "enum": [
                                              "changeTracking"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Change Tracking",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "branding"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Branding",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "product"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Product",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "menu"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Menu",
                                        "type": "object"
                                      },
                                      {
                                        "description": "Extrait l’audio (MP3) depuis des URL vidéo prises en charge, par ex. YouTube. Renvoie une URL GCS signée.",
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "audio"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Audio",
                                        "type": "object"
                                      },
                                      {
                                        "description": "Extrait la vidéo dans la meilleure qualité depuis des URL vidéo prises en charge, par ex. YouTube. Renvoie une URL GCS signée.",
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "video"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Video",
                                        "type": "object"
                                      },
                                      {
                                        "description": "Pose une question en langage naturel sur la page. Renvoie la réponse dans le champ `answer` de la réponse.",
                                        "properties": {
                                          "question": {
                                            "description": "La question à laquelle répondre sur la page. Maximum 10 000 caractères.",
                                            "maxLength": 10000,
                                            "type": "string"
                                          },
                                          "type": {
                                            "enum": [
                                              "question"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "question"
                                        ],
                                        "title": "Question",
                                        "type": "object"
                                      },
                                      {
                                        "description": "Trouve le texte source pertinent sur la page. Renvoie le texte sélectionné dans le champ `highlights` de la réponse.",
                                        "properties": {
                                          "query": {
                                            "description": "La requête de sélection de texte à exécuter sur la page. Maximum 10 000 caractères.",
                                            "maxLength": 10000,
                                            "type": "string"
                                          },
                                          "type": {
                                            "enum": [
                                              "highlights"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "query"
                                        ],
                                        "title": "Highlights",
                                        "type": "object"
                                      }
                                    ]
                                  },
                                  "type": "array"
                                },
                                "headers": {
                                  "description": "En-têtes à inclure dans la requête. Peuvent être utilisés pour envoyer des cookies, un user-agent, etc.",
                                  "type": "object"
                                },
                                "includeTags": {
                                  "description": "Balises à inclure dans le résultat.",
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array"
                                },
                                "location": {
                                  "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": {
                                      "default": "US",
                                      "description": "Code de pays ISO 3166-1 alpha-2 (p. 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é. 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": {
                                        "example": "en-US",
                                        "type": "string"
                                      },
                                      "type": "array"
                                    }
                                  },
                                  "type": "object"
                                },
                                "lockdown": {
                                  "default": false,
                                  "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.",
                                  "type": "boolean"
                                },
                                "maxAge": {
                                  "default": 172800000,
                                  "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.",
                                  "type": "integer"
                                },
                                "minAge": {
                                  "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.",
                                  "type": "integer"
                                },
                                "mobile": {
                                  "default": false,
                                  "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.",
                                  "type": "boolean"
                                },
                                "onlyCleanContent": {
                                  "default": false,
                                  "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.",
                                  "type": "boolean"
                                },
                                "onlyMainContent": {
                                  "default": true,
                                  "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.",
                                  "type": "boolean"
                                },
                                "parsers": {
                                  "default": [
                                    "pdf"
                                  ],
                                  "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": [
                                      {
                                        "additionalProperties": false,
                                        "properties": {
                                          "maxPages": {
                                            "description": "Nombre maximal de pages du PDF à analyser. Doit être un entier positif inférieur ou égal à 10 000.",
                                            "maximum": 10000,
                                            "minimum": 1,
                                            "type": "integer"
                                          },
                                          "mode": {
                                            "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.",
                                            "enum": [
                                              "fast",
                                              "auto",
                                              "ocr"
                                            ],
                                            "type": "string"
                                          },
                                          "type": {
                                            "enum": [
                                              "pdf"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "type": "object"
                                      }
                                    ]
                                  },
                                  "type": "array"
                                },
                                "profile": {
                                  "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": {
                                      "description": "Nom du profil. Les scrapes portant le même nom partagent l’état du navigateur (cookies, localStorage, sessions).",
                                      "maxLength": 128,
                                      "minLength": 1,
                                      "type": "string"
                                    },
                                    "saveChanges": {
                                      "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.",
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "type": "object"
                                },
                                "proxy": {
                                  "default": "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é.",
                                  "enum": [
                                    "basic",
                                    "enhanced",
                                    "auto"
                                  ],
                                  "type": "string"
                                },
                                "redactPII": {
                                  "default": false,
                                  "description": "Masquez les données personnelles identifiables dans le markdown renvoyé. Passez `true` pour utiliser les valeurs par défaut, ou un objet pour ajuster le mode, les entités et le style de remplacement.",
                                  "oneOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "additionalProperties": false,
                                      "description": "Options de réglage du masquage des PII.",
                                      "properties": {
                                        "entities": {
                                          "description": "Limitez le masquage à ces groupes d'entités. Si ce champ est omis, toutes les entités prises en charge sont masquées.",
                                          "items": {
                                            "description": "Groupes d'entités PII publiques pris en charge par le masquage de Firecrawl.",
                                            "enum": [
                                              "PERSON",
                                              "EMAIL",
                                              "PHONE",
                                              "LOCATION",
                                              "FINANCIAL",
                                              "SECRET"
                                            ],
                                            "type": "string"
                                          },
                                          "type": "array"
                                        },
                                        "mode": {
                                          "default": "accurate",
                                          "description": "Stratégie de masquage. `accurate` utilise uniquement le modèle et est optimisée pour la précision, `aggressive` augmente le rappel grâce à des heuristiques supplémentaires, et `fast` utilise des heuristiques sans appel au modèle.",
                                          "enum": [
                                            "accurate",
                                            "aggressive",
                                            "fast"
                                          ],
                                          "type": "string"
                                        },
                                        "replaceStyle": {
                                          "default": "tag",
                                          "description": "`tag` remplace les portions de texte par des marqueurs comme `<EMAIL>`, `mask` remplace les caractères par `*`, et `remove` supprime le texte de la portion.",
                                          "enum": [
                                            "tag",
                                            "mask",
                                            "remove"
                                          ],
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    }
                                  ]
                                },
                                "removeBase64Images": {
                                  "default": true,
                                  "description": "<[\n  {\n    \"key\": \"0\",\n    \"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é.\"\n  }\n]</>",
                                  "type": "boolean"
                                },
                                "skipTlsVerification": {
                                  "default": true,
                                  "description": "Ignorer la vérification du certificat TLS lors des 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 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.",
                                  "type": "boolean"
                                },
                                "threatProtection": {
                                  "description": "Dérogation [Protection contre les menaces](https://docs.firecrawl.dev/features/threat-protection) au niveau de la requête. 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 qui inclut cet objet est rejetée avec un code 403. Si la Protection contre les menaces est appliquée à 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 motifs avec joker (`*.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 classifieur est injoignable : `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 analysée).",
                                      "enum": [
                                        "off",
                                        "normal"
                                      ],
                                      "type": "string"
                                    },
                                    "riskScoreThreshold": {
                                      "description": "Score de risque normalisé (0–100) à partir duquel une décision du classifieur bloque l’URL. Plus il est faible, plus le filtrage est strict.",
                                      "example": 75,
                                      "maximum": 100,
                                      "minimum": 0,
                                      "type": "integer"
                                    },
                                    "whitelist": {
                                      "description": "Domaines à toujours autoriser, sous forme de domaines simples ou de motifs avec joker. Prend le pas sur toutes les autres règles.",
                                      "items": {
                                        "type": "string"
                                      },
                                      "maxItems": 1000,
                                      "type": "array"
                                    }
                                  },
                                  "title": "Threat Protection Override",
                                  "type": "object"
                                },
                                "timeout": {
                                  "default": 60000,
                                  "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).",
                                  "maximum": 300000,
                                  "minimum": 1000,
                                  "type": "integer"
                                },
                                "waitFor": {
                                  "default": 0,
                                  "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.",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "type": {
                              "enum": [
                                "scrape"
                              ],
                              "type": "string"
                            },
                            "urls": {
                              "items": {
                                "format": "uri",
                                "type": "string"
                              },
                              "minItems": 1,
                              "type": "array"
                            }
                          },
                          "required": [
                            "type",
                            "urls"
                          ],
                          "title": "Scrape target",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "crawlOptions": {
                              "description": "Options de crawl telles que `limit`, `maxDepth`, `includePaths` et `excludePaths`.",
                              "type": "object"
                            },
                            "id": {
                              "description": "ID stable facultatif pour cette cible. Généré s’il est omis.",
                              "format": "uuid",
                              "type": "string"
                            },
                            "scrapeOptions": {
                              "properties": {
                                "actions": {
                                  "description": "Actions à effectuer sur la page avant de récupérer le contenu",
                                  "items": {
                                    "oneOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "additionalProperties": false,
                                            "properties": {
                                              "milliseconds": {
                                                "description": "Nombre de millisecondes à attendre",
                                                "minimum": 1,
                                                "type": "integer"
                                              },
                                              "type": {
                                                "description": "Attendre un nombre spécifié de millisecondes",
                                                "enum": [
                                                  "wait"
                                                ],
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "type",
                                              "milliseconds"
                                            ],
                                            "title": "Wait by Duration",
                                            "type": "object"
                                          },
                                          {
                                            "additionalProperties": false,
                                            "properties": {
                                              "selector": {
                                                "description": "Sélecteur CSS à surveiller",
                                                "example": "#my-element",
                                                "type": "string"
                                              },
                                              "type": {
                                                "description": "Attendre l’apparition d’un élément spécifique",
                                                "enum": [
                                                  "wait"
                                                ],
                                                "type": "string"
                                              }
                                            },
                                            "required": [
                                              "type",
                                              "selector"
                                            ],
                                            "title": "Wait for Element",
                                            "type": "object"
                                          }
                                        ],
                                        "title": "Wait"
                                      },
                                      {
                                        "properties": {
                                          "fullPage": {
                                            "default": false,
                                            "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).",
                                            "type": "boolean"
                                          },
                                          "quality": {
                                            "description": "Qualité de la capture d’écran, de 1 à 100, 100 étant la meilleure qualité.",
                                            "type": "integer"
                                          },
                                          "type": {
                                            "description": "Prenez une capture d’écran. Les liens se trouveront dans le tableau `actions.screenshots` de la réponse.",
                                            "enum": [
                                              "screenshot"
                                            ],
                                            "type": "string"
                                          },
                                          "viewport": {
                                            "properties": {
                                              "height": {
                                                "description": "Hauteur du viewport en pixels",
                                                "type": "integer"
                                              },
                                              "width": {
                                                "description": "La largeur de la fenêtre d’affichage, en pixels",
                                                "type": "integer"
                                              }
                                            },
                                            "required": [
                                              "width",
                                              "height"
                                            ],
                                            "type": "object"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Screenshot",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "all": {
                                            "default": false,
                                            "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.",
                                            "type": "boolean"
                                          },
                                          "selector": {
                                            "description": "Sélecteur 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": "É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.",
                                            "enum": [
                                              "write"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "text"
                                        ],
                                        "title": "Write text",
                                        "type": "object"
                                      },
                                      {
                                        "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": {
                                          "key": {
                                            "description": "Touche sur laquelle appuyer",
                                            "example": "Enter",
                                            "type": "string"
                                          },
                                          "type": {
                                            "description": "Appuyez sur une touche de la page",
                                            "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": "Faites 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 obtenu",
                                            "enum": [
                                              "A0",
                                              "A1",
                                              "A2",
                                              "A3",
                                              "A4",
                                              "A5",
                                              "A6",
                                              "Letter",
                                              "Legal",
                                              "Tabloid",
                                              "Ledger"
                                            ],
                                            "type": "string"
                                          },
                                          "landscape": {
                                            "default": false,
                                            "description": "Détermine s’il faut générer le PDF au format paysage",
                                            "type": "boolean"
                                          },
                                          "scale": {
                                            "default": 1,
                                            "description": "Facteur d’échelle du PDF généré",
                                            "type": "number"
                                          },
                                          "type": {
                                            "description": "Génère un PDF de la page en cours. 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"
                                },
                                "auditMetadata": {
                                  "additionalProperties": false,
                                  "description": "Informations d’attribution de l’utilisateur incluses dans les événements de journalisation SIEM lorsque SIEM Logging est activé pour l’organisation.",
                                  "properties": {
                                    "username": {
                                      "description": "Le nom d’utilisateur associé à la requête.",
                                      "maxLength": 1024,
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "username"
                                  ],
                                  "type": "object"
                                },
                                "blockAds": {
                                  "default": true,
                                  "description": "Active le blocage des publicités et des fenêtres contextuelles de cookies.",
                                  "type": "boolean"
                                },
                                "excludeTags": {
                                  "description": "Balises à exclure du résultat.",
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array"
                                },
                                "formats": {
                                  "default": [
                                    "markdown"
                                  ],
                                  "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: {...} }]`.",
                                  "items": {
                                    "oneOf": [
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "markdown"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Markdown",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "summary"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Summary",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "html"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "HTML",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "rawHtml"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Raw HTML",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "links"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Links",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "images"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Images",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "fullPage": {
                                            "default": false,
                                            "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).",
                                            "type": "boolean"
                                          },
                                          "quality": {
                                            "description": "La qualité de la capture d’écran, sur une échelle de 1 à 100. 100 correspond à la qualité maximale.",
                                            "type": "integer"
                                          },
                                          "type": {
                                            "enum": [
                                              "screenshot"
                                            ],
                                            "type": "string"
                                          },
                                          "viewport": {
                                            "properties": {
                                              "height": {
                                                "description": "La hauteur du viewport en pixels",
                                                "type": "integer"
                                              },
                                              "width": {
                                                "description": "Largeur du viewport en pixels",
                                                "type": "integer"
                                              }
                                            },
                                            "required": [
                                              "width",
                                              "height"
                                            ],
                                            "type": "object"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Screenshot",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "prompt": {
                                            "description": "L’invite à utiliser pour la sortie au format JSON",
                                            "type": "string"
                                          },
                                          "schema": {
                                            "description": "Le schéma à utiliser pour la sortie JSON. Doit être conforme à [JSON Schema](https://json-schema.org/).",
                                            "type": "object"
                                          },
                                          "type": {
                                            "enum": [
                                              "json"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "JSON",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "modes": {
                                            "description": "Le mode de suivi des modifications à utiliser. « git-diff » fournit un diff détaillé, tandis que « json » compare les données JSON extraites.",
                                            "items": {
                                              "enum": [
                                                "git-diff",
                                                "json"
                                              ],
                                              "type": "string"
                                            },
                                            "type": "array"
                                          },
                                          "prompt": {
                                            "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.",
                                            "type": "string"
                                          },
                                          "schema": {
                                            "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/).",
                                            "type": "object"
                                          },
                                          "tag": {
                                            "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é.",
                                            "nullable": true,
                                            "type": "string"
                                          },
                                          "type": {
                                            "enum": [
                                              "changeTracking"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Change Tracking",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "branding"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Branding",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "product"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Product",
                                        "type": "object"
                                      },
                                      {
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "menu"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Menu",
                                        "type": "object"
                                      },
                                      {
                                        "description": "Extrait l’audio (MP3) depuis des URL vidéo prises en charge, par ex. YouTube. Renvoie une URL GCS signée.",
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "audio"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Audio",
                                        "type": "object"
                                      },
                                      {
                                        "description": "Extrait la vidéo dans la meilleure qualité depuis des URL vidéo prises en charge, par ex. YouTube. Renvoie une URL GCS signée.",
                                        "properties": {
                                          "type": {
                                            "enum": [
                                              "video"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "title": "Video",
                                        "type": "object"
                                      },
                                      {
                                        "description": "Pose une question en langage naturel sur la page. Renvoie la réponse dans le champ `answer` de la réponse.",
                                        "properties": {
                                          "question": {
                                            "description": "La question à laquelle répondre sur la page. Maximum 10 000 caractères.",
                                            "maxLength": 10000,
                                            "type": "string"
                                          },
                                          "type": {
                                            "enum": [
                                              "question"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "question"
                                        ],
                                        "title": "Question",
                                        "type": "object"
                                      },
                                      {
                                        "description": "Trouve le texte source pertinent sur la page. Renvoie le texte sélectionné dans le champ `highlights` de la réponse.",
                                        "properties": {
                                          "query": {
                                            "description": "La requête de sélection de texte à exécuter sur la page. Maximum 10 000 caractères.",
                                            "maxLength": 10000,
                                            "type": "string"
                                          },
                                          "type": {
                                            "enum": [
                                              "highlights"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type",
                                          "query"
                                        ],
                                        "title": "Highlights",
                                        "type": "object"
                                      }
                                    ]
                                  },
                                  "type": "array"
                                },
                                "headers": {
                                  "description": "En-têtes à inclure dans la requête. Peuvent être utilisés pour envoyer des cookies, un user-agent, etc.",
                                  "type": "object"
                                },
                                "includeTags": {
                                  "description": "Balises à inclure dans le résultat.",
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array"
                                },
                                "location": {
                                  "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": {
                                      "default": "US",
                                      "description": "Code de pays ISO 3166-1 alpha-2 (p. 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é. 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": {
                                        "example": "en-US",
                                        "type": "string"
                                      },
                                      "type": "array"
                                    }
                                  },
                                  "type": "object"
                                },
                                "lockdown": {
                                  "default": false,
                                  "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.",
                                  "type": "boolean"
                                },
                                "maxAge": {
                                  "default": 172800000,
                                  "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.",
                                  "type": "integer"
                                },
                                "minAge": {
                                  "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.",
                                  "type": "integer"
                                },
                                "mobile": {
                                  "default": false,
                                  "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.",
                                  "type": "boolean"
                                },
                                "onlyCleanContent": {
                                  "default": false,
                                  "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.",
                                  "type": "boolean"
                                },
                                "onlyMainContent": {
                                  "default": true,
                                  "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.",
                                  "type": "boolean"
                                },
                                "parsers": {
                                  "default": [
                                    "pdf"
                                  ],
                                  "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": [
                                      {
                                        "additionalProperties": false,
                                        "properties": {
                                          "maxPages": {
                                            "description": "Nombre maximal de pages du PDF à analyser. Doit être un entier positif inférieur ou égal à 10 000.",
                                            "maximum": 10000,
                                            "minimum": 1,
                                            "type": "integer"
                                          },
                                          "mode": {
                                            "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.",
                                            "enum": [
                                              "fast",
                                              "auto",
                                              "ocr"
                                            ],
                                            "type": "string"
                                          },
                                          "type": {
                                            "enum": [
                                              "pdf"
                                            ],
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ],
                                        "type": "object"
                                      }
                                    ]
                                  },
                                  "type": "array"
                                },
                                "profile": {
                                  "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": {
                                      "description": "Nom du profil. Les scrapes portant le même nom partagent l’état du navigateur (cookies, localStorage, sessions).",
                                      "maxLength": 128,
                                      "minLength": 1,
                                      "type": "string"
                                    },
                                    "saveChanges": {
                                      "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.",
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "name"
                                  ],
                                  "type": "object"
                                },
                                "proxy": {
                                  "default": "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é.",
                                  "enum": [
                                    "basic",
                                    "enhanced",
                                    "auto"
                                  ],
                                  "type": "string"
                                },
                                "redactPII": {
                                  "default": false,
                                  "description": "Masquez les données personnelles identifiables dans le markdown renvoyé. Passez `true` pour utiliser les valeurs par défaut, ou un objet pour ajuster le mode, les entités et le style de remplacement.",
                                  "oneOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "additionalProperties": false,
                                      "description": "Options de réglage du masquage des PII.",
                                      "properties": {
                                        "entities": {
                                          "description": "Limitez le masquage à ces groupes d'entités. Si ce champ est omis, toutes les entités prises en charge sont masquées.",
                                          "items": {
                                            "description": "Groupes d'entités PII publiques pris en charge par le masquage de Firecrawl.",
                                            "enum": [
                                              "PERSON",
                                              "EMAIL",
                                              "PHONE",
                                              "LOCATION",
                                              "FINANCIAL",
                                              "SECRET"
                                            ],
                                            "type": "string"
                                          },
                                          "type": "array"
                                        },
                                        "mode": {
                                          "default": "accurate",
                                          "description": "Stratégie de masquage. `accurate` utilise uniquement le modèle et est optimisée pour la précision, `aggressive` augmente le rappel grâce à des heuristiques supplémentaires, et `fast` utilise des heuristiques sans appel au modèle.",
                                          "enum": [
                                            "accurate",
                                            "aggressive",
                                            "fast"
                                          ],
                                          "type": "string"
                                        },
                                        "replaceStyle": {
                                          "default": "tag",
                                          "description": "`tag` remplace les portions de texte par des marqueurs comme `<EMAIL>`, `mask` remplace les caractères par `*`, et `remove` supprime le texte de la portion.",
                                          "enum": [
                                            "tag",
                                            "mask",
                                            "remove"
                                          ],
                                          "type": "string"
                                        }
                                      },
                                      "type": "object"
                                    }
                                  ]
                                },
                                "removeBase64Images": {
                                  "default": true,
                                  "description": "<[\n  {\n    \"key\": \"0\",\n    \"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é.\"\n  }\n]</>",
                                  "type": "boolean"
                                },
                                "skipTlsVerification": {
                                  "default": true,
                                  "description": "Ignorer la vérification du certificat TLS lors des 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 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.",
                                  "type": "boolean"
                                },
                                "threatProtection": {
                                  "description": "Dérogation [Protection contre les menaces](https://docs.firecrawl.dev/features/threat-protection) au niveau de la requête. 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 qui inclut cet objet est rejetée avec un code 403. Si la Protection contre les menaces est appliquée à 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 motifs avec joker (`*.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 classifieur est injoignable : `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 analysée).",
                                      "enum": [
                                        "off",
                                        "normal"
                                      ],
                                      "type": "string"
                                    },
                                    "riskScoreThreshold": {
                                      "description": "Score de risque normalisé (0–100) à partir duquel une décision du classifieur bloque l’URL. Plus il est faible, plus le filtrage est strict.",
                                      "example": 75,
                                      "maximum": 100,
                                      "minimum": 0,
                                      "type": "integer"
                                    },
                                    "whitelist": {
                                      "description": "Domaines à toujours autoriser, sous forme de domaines simples ou de motifs avec joker. Prend le pas sur toutes les autres règles.",
                                      "items": {
                                        "type": "string"
                                      },
                                      "maxItems": 1000,
                                      "type": "array"
                                    }
                                  },
                                  "title": "Threat Protection Override",
                                  "type": "object"
                                },
                                "timeout": {
                                  "default": 60000,
                                  "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).",
                                  "maximum": 300000,
                                  "minimum": 1000,
                                  "type": "integer"
                                },
                                "waitFor": {
                                  "default": 0,
                                  "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.",
                                  "type": "integer"
                                }
                              },
                              "type": "object"
                            },
                            "type": {
                              "enum": [
                                "crawl"
                              ],
                              "type": "string"
                            },
                            "url": {
                              "format": "uri",
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "url"
                          ],
                          "title": "Crawl target",
                          "type": "object"
                        },
                        {
                          "description": "Exécute des requêtes de recherche web à chaque vérification et envoie des alertes pour les nouveaux résultats correspondant à l’objectif du monitor. Nécessite un `goal` de premier niveau non vide sur le monitor, sauf si `judgeEnabled` est `false`.",
                          "properties": {
                            "excludeDomains": {
                              "description": "Facultatif. Exclure les résultats provenant de ces domaines.",
                              "items": {
                                "type": "string"
                              },
                              "maxItems": 50,
                              "type": "array"
                            },
                            "id": {
                              "description": "ID stable facultatif pour cette cible. Généré s’il est omis.",
                              "format": "uuid",
                              "type": "string"
                            },
                            "includeDomains": {
                              "description": "Facultatif. Limiter les résultats à ces domaines.",
                              "items": {
                                "type": "string"
                              },
                              "maxItems": 50,
                              "type": "array"
                            },
                            "maxResults": {
                              "default": 10,
                              "description": "Nombre total de résultats à évaluer par vérification, fusionnés et dédupliqués sur l’ensemble des requêtes (plafond global, et non par requête).",
                              "maximum": 50,
                              "minimum": 1,
                              "type": "integer"
                            },
                            "queries": {
                              "description": "Requêtes de recherche à exécuter à chaque vérification (1 à 12).",
                              "items": {
                                "maxLength": 256,
                                "minLength": 1,
                                "type": "string"
                              },
                              "maxItems": 12,
                              "minItems": 1,
                              "type": "array"
                            },
                            "searchWindow": {
                              "default": "24h",
                              "description": "Filtre de récence — prend uniquement en compte les résultats publiés dans cette période.",
                              "enum": [
                                "5m",
                                "15m",
                                "1h",
                                "6h",
                                "24h",
                                "7d"
                              ],
                              "type": "string"
                            },
                            "type": {
                              "enum": [
                                "search"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "queries"
                          ],
                          "title": "Search target",
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "updatedAt": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "webhook": {
                    "description": "Destination du webhook pour les événements de page du monitor et de fin de vérification.",
                    "properties": {
                      "events": {
                        "description": "Événements webhook du monitor à recevoir. Par défaut, tous les événements du monitor sont reçus.",
                        "items": {
                          "enum": [
                            "monitor.page",
                            "monitor.check.completed"
                          ],
                          "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 incluses dans les payloads des webhooks.",
                        "type": "object"
                      },
                      "url": {
                        "description": "URL à laquelle envoyer les webhooks du monitor.",
                        "format": "uri",
                        "type": "string"
                      }
                    },
                    "required": [
                      "url"
                    ],
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "success": {
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Monitor mis à jour"
    },
    "404": {
      "description": "Monitor introuvable"
    }
  }
}
```
