# Parse (/fr/api-reference/endpoint/parse)

<!-- agent-signals: reading_time_min: 21 · est_tokens: 15396 · 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)

Téléversez un document local ou non public et convertissez-le en données propres, prêtes pour le LLM. `/parse` accepte le fichier via `multipart/form-data` et renvoie du Markdown, du JSON, du HTML, des liens, des images ou un résumé, tout en préservant l’ordre de lecture et les tableaux.

* Convertissez des PDF, DOCX, XLSX, HTML et bien plus en Markdown ou en JSON structuré
* Jusqu’à **5x plus rapide** grâce à un moteur Rust
* Jusqu’à **50 MB** par requête
* Prise en charge du Zero Data Retention

<div id="when-to-use-parse">
  ## Quand utiliser `/parse` [#quand-utiliser-parse]
</div>

Utilisez `/parse` lorsque le document source est **un fichier local** ou **n’est pas accessible publiquement via une URL**. Si vous disposez d’une URL publique pointant vers un document, privilégiez [`/scrape`](/fr/api-reference/endpoint/scrape) — ce point de terminaison détecte automatiquement le type de fichier à partir de l’extension ou du type de contenu et l’analyse de la même façon.

| Source                                                                            | Point de terminaison                                |
| --------------------------------------------------------------------------------- | --------------------------------------------------- |
| URL publique pointant vers un document (par ex. `https://example.com/report.pdf`) | [`POST /scrape`](/fr/api-reference/endpoint/scrape) |
| Fichier local ou données binaires non publiques (PDF, DOCX, XLSX, HTML, …)        | `POST /parse` (ce point de terminaison)             |

<Tip>
  **Vous utilisez Firecrawl via MCP ?** Utilisez `firecrawl_parse` pour les fichiers locaux. MCP local peut lire le fichier directement lorsqu’il est configuré avec `FIRECRAWL_API_URL`. Le MCP distant hébergé renvoie d’abord une commande d’upload temporaire, puis analyse l’`uploadRef` renvoyé. Les URL publiques de documents doivent toujours utiliser `/scrape`.
</Tip>

`POST /parse`

Téléverser et analyser un fichier

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "encoding": {
          "options": {
            "contentType": "application/json"
          }
        },
        "schema": {
          "properties": {
            "file": {
              "description": "Les octets du fichier à analyser. Extensions prises en charge : .html, .htm, .pdf, .docx, .doc, .odt, .rtf, .xlsx, .xls.",
              "format": "binary",
              "type": "string"
            },
            "options": {
              "description": "Options d’analyse facultatives envoyées au format JSON dans le champ multipart `options`.",
              "properties": {
                "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": "Activer le blocage des publicités et des fenêtres contextuelles de cookies.",
                  "type": "boolean"
                },
                "excludeTags": {
                  "description": "Balises à exclure de la sortie.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "formats": {
                  "default": [
                    "markdown"
                  ],
                  "description": "Formats de sortie pris en charge pour les téléversements `/parse`. Les formats avec rendu dans le Browser et le suivi des modifications ne sont pas pris en charge.",
                  "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": {
                          "prompt": {
                            "description": "Le prompt à utiliser pour la sortie JSON",
                            "type": "string"
                          },
                          "schema": {
                            "description": "Le schéma à utiliser pour la sortie JSON. Il doit être conforme à [JSON Schema](https://json-schema.org/).",
                            "type": "object"
                          },
                          "type": {
                            "enum": [
                              "json"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "title": "JSON",
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "headers": {
                  "description": "En-têtes à envoyer lorsque des requêtes réseau supplémentaires sont nécessaires.",
                  "type": "object"
                },
                "includeTags": {
                  "description": "Balises à inclure dans la sortie.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "integration": {
                  "description": "Identifiant d’intégration facultatif.",
                  "nullable": true,
                  "type": "string"
                },
                "onlyMainContent": {
                  "default": true,
                  "description": "Retourner uniquement le contenu principal de la page, en excluant les en-têtes, la navigation, les pieds de page, etc.",
                  "type": "boolean"
                },
                "origin": {
                  "default": "api",
                  "description": "Identifiant d’origine à des fins d’analyse et de journalisation.",
                  "type": "string"
                },
                "parsers": {
                  "default": [
                    "pdf"
                  ],
                  "description": "Contrôle le comportement de l’analyseur de fichiers lorsque nécessaire (par exemple, le mode d’analyse PDF).",
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "maxPages": {
                            "description": "Nombre maximal de pages à analyser dans le PDF.",
                            "maximum": 10000,
                            "minimum": 1,
                            "type": "integer"
                          },
                          "mode": {
                            "default": "auto",
                            "description": "Mode d’analyse PDF. \"fast\" : extraction de texte uniquement. \"auto\" : texte d’abord, avec OCR en secours. \"ocr\" : OCR sur chaque page.",
                            "enum": [
                              "fast",
                              "auto",
                              "ocr"
                            ],
                            "type": "string"
                          },
                          "type": {
                            "enum": [
                              "pdf"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "proxy": {
                  "description": "Mode proxy pour les téléversements `/parse`. `/parse` prend en charge uniquement `basic` et `auto`.",
                  "enum": [
                    "basic",
                    "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": "Supprimer les images encodées en base64 de la sortie et conserver les espaces réservés du texte alternatif.",
                  "type": "boolean"
                },
                "skipTlsVerification": {
                  "default": true,
                  "description": "Ignorer la vérification du certificat TLS lors de l’envoi des requêtes.",
                  "type": "boolean"
                },
                "timeout": {
                  "default": 30000,
                  "description": "Délai d’expiration en millisecondes pour la requête. La valeur par défaut est de 30000 (30 secondes). Le maximum est de 300000 (300 secondes).",
                  "maximum": 300000,
                  "type": "integer"
                },
                "zeroDataRetention": {
                  "default": false,
                  "description": "Si la valeur est true, cela activera Zero Data Retention pour cette analyse. Pour activer cette fonctionnalité, veuillez contacter help@firecrawl.dev",
                  "type": "boolean"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "file"
          ],
          "type": "object"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "data": {
                "properties": {
                  "actions": {
                    "description": "Résultats des actions spécifiées via le paramètre `actions`. Uniquement présent si ce paramètre a été fourni dans la requête",
                    "nullable": true,
                    "properties": {
                      "javascriptReturns": {
                        "description": "Valeurs renvoyées par JavaScript, dans le même ordre que les actions executeJavascript fournies.",
                        "items": {
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "value": {}
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "pdfs": {
                        "description": "PDF générés, dans le même ordre que les actions PDF fournies.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "scrapes": {
                        "description": "Extraire le contenu dans le même ordre que les actions de scraping fournies.",
                        "items": {
                          "properties": {
                            "html": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "screenshots": {
                        "description": "URLs des captures d’écran, dans le même ordre que les actions de capture d’écran indiquées.",
                        "items": {
                          "format": "url",
                          "type": "string"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "answer": {
                    "description": "Réponse en langage naturel à la question fournie via le format `question`. Présente uniquement si un objet de format `question` a été inclus dans `formats`.",
                    "nullable": true,
                    "type": "string"
                  },
                  "audio": {
                    "description": "URL signée du fichier audio MP3 extrait si `audio` est présent dans `formats`. L’URL signée expire au bout d’une heure.",
                    "nullable": true,
                    "type": "string"
                  },
                  "branding": {
                    "description": "Informations de branding extraites de la page si `branding` figure dans `formats`. Inclut les couleurs, les polices, la typographie, l’espacement, les composants, et plus encore.",
                    "nullable": true,
                    "properties": {
                      "animations": {
                        "description": "Paramètres d’animation et de transition.",
                        "nullable": true,
                        "type": "object"
                      },
                      "colorScheme": {
                        "description": "Palette de couleurs détectée sur la page.",
                        "enum": [
                          "light",
                          "dark"
                        ],
                        "type": "string"
                      },
                      "colors": {
                        "description": "Couleurs de la marque extraites à partir de la page.",
                        "nullable": true,
                        "properties": {
                          "accent": {
                            "description": "Couleur d’accent (hex).",
                            "type": "string"
                          },
                          "background": {
                            "description": "Couleur d’arrière-plan (hex).",
                            "type": "string"
                          },
                          "error": {
                            "description": "Couleur d’erreur/de danger (hex).",
                            "type": "string"
                          },
                          "link": {
                            "description": "Couleur des liens (hex).",
                            "type": "string"
                          },
                          "primary": {
                            "description": "Couleur principale de la marque (hex).",
                            "type": "string"
                          },
                          "secondary": {
                            "description": "Couleur secondaire de la marque (hex).",
                            "type": "string"
                          },
                          "success": {
                            "description": "Couleur de succès/état positif (hex).",
                            "type": "string"
                          },
                          "textPrimary": {
                            "description": "Couleur principale du texte (hex).",
                            "type": "string"
                          },
                          "textSecondary": {
                            "description": "Couleur secondaire du texte (hex).",
                            "type": "string"
                          },
                          "warning": {
                            "description": "Couleur d’avertissement (hex).",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "components": {
                        "description": "Styles des composants d’interface (UI).",
                        "nullable": true,
                        "properties": {
                          "buttonPrimary": {
                            "description": "Styles des boutons principaux (boutons primaires).",
                            "properties": {
                              "background": {
                                "type": "string"
                              },
                              "borderRadius": {
                                "type": "string"
                              },
                              "textColor": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "buttonSecondary": {
                            "description": "Styles pour les boutons secondaires.",
                            "properties": {
                              "background": {
                                "type": "string"
                              },
                              "borderColor": {
                                "type": "string"
                              },
                              "borderRadius": {
                                "type": "string"
                              },
                              "textColor": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "input": {
                            "description": "Styles des champs de saisie.",
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "fonts": {
                        "description": "Tableau des familles de polices utilisées sur la page.",
                        "items": {
                          "properties": {
                            "family": {
                              "description": "Nom de la famille de polices.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "nullable": true,
                        "type": "array"
                      },
                      "icons": {
                        "description": "Styles des icônes.",
                        "nullable": true,
                        "type": "object"
                      },
                      "images": {
                        "description": "Images de marque.",
                        "nullable": true,
                        "properties": {
                          "favicon": {
                            "description": "URL du favicon.",
                            "type": "string"
                          },
                          "logo": {
                            "description": "URL de l’image du logo.",
                            "type": "string"
                          },
                          "ogImage": {
                            "description": "URL de l’image Open Graph.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "layout": {
                        "description": "Configuration de la mise en page (grille, hauteurs d’en-tête et de pied de page).",
                        "nullable": true,
                        "type": "object"
                      },
                      "logo": {
                        "description": "URL du logo principal.",
                        "nullable": true,
                        "type": "string"
                      },
                      "personality": {
                        "description": "Caractéristiques de la personnalité de la marque (ton, énergie, audience cible).",
                        "nullable": true,
                        "type": "object"
                      },
                      "spacing": {
                        "description": "Paramètres d’espacement et de mise en page.",
                        "nullable": true,
                        "properties": {
                          "baseUnit": {
                            "description": "Unité de base d’espacement en pixels.",
                            "type": "integer"
                          },
                          "borderRadius": {
                            "description": "Rayon de bordure (border-radius) par défaut.",
                            "type": "string"
                          },
                          "margins": {
                            "description": "Valeurs de marge (margin).",
                            "type": "object"
                          },
                          "padding": {
                            "description": "Valeurs de remplissage (padding).",
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "typography": {
                        "description": "Informations détaillées sur la typographie.",
                        "nullable": true,
                        "properties": {
                          "fontFamilies": {
                            "description": "Familles de polices par rôle.",
                            "properties": {
                              "code": {
                                "description": "Famille de polices pour le code/police à chasse fixe (monospace).",
                                "type": "string"
                              },
                              "heading": {
                                "description": "Famille de polices des titres.",
                                "type": "string"
                              },
                              "primary": {
                                "description": "Famille de polices principale.",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "fontSizes": {
                            "description": "Tailles de police pour les différents niveaux typographiques.",
                            "properties": {
                              "body": {
                                "type": "string"
                              },
                              "h1": {
                                "type": "string"
                              },
                              "h2": {
                                "type": "string"
                              },
                              "h3": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "fontWeights": {
                            "description": "Définition des graisses de police.",
                            "properties": {
                              "bold": {
                                "type": "integer"
                              },
                              "light": {
                                "type": "integer"
                              },
                              "medium": {
                                "type": "integer"
                              },
                              "regular": {
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          },
                          "lineHeights": {
                            "description": "Valeurs d’interligne pour les différents types de texte.",
                            "properties": {
                              "body": {
                                "type": "string"
                              },
                              "heading": {
                                "type": "string"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "changeTracking": {
                    "description": "Informations de suivi des modifications si `changeTracking` figure dans `formats`. Uniquement présent lorsque le format `changeTracking` est demandé.",
                    "nullable": true,
                    "properties": {
                      "changeStatus": {
                        "description": "Le résultat de la comparaison entre les deux versions de la page. « new » signifie que cette page n’existait pas auparavant, « same » indique que le contenu n’a pas changé, « changed » indique que le contenu a été modifié, « removed » signifie que la page a été supprimée.",
                        "enum": [
                          "new",
                          "same",
                          "changed",
                          "removed"
                        ],
                        "type": "string"
                      },
                      "diff": {
                        "description": "Diff des modifications au format Git lors de l’utilisation du mode « git-diff ». Uniquement présent lorsque le mode est activé sur « git-diff ».",
                        "nullable": true,
                        "type": "string"
                      },
                      "json": {
                        "description": "Résultats de comparaison JSON lors de l’utilisation du mode `json`. Uniquement disponible lorsque le mode est défini sur `json`. Produit une liste de toutes les clés et de leurs valeurs à partir des extractions `previous` et `current`, en fonction du type défini dans le `schema`. Exemple [ici](/features/change-tracking)",
                        "nullable": true,
                        "type": "object"
                      },
                      "previousScrapeAt": {
                        "description": "L’horodatage du précédent scrape auquel la page actuelle est comparée. Null s’il n’y a eu aucun scrape précédent.",
                        "format": "date-time",
                        "nullable": true,
                        "type": "string"
                      },
                      "visibility": {
                        "description": "La visibilité de la page/URL actuelle. « visible » signifie que l’URL a été découverte via une voie organique (liens ou sitemap), « hidden » signifie que l’URL a été découverte à partir de la mémoire de crawls précédents.",
                        "enum": [
                          "visible",
                          "hidden"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "highlights": {
                    "description": "Texte source pertinent sélectionné par le format `highlights`. Présent uniquement si un objet de format `highlights` a été inclus dans `formats`.",
                    "nullable": true,
                    "type": "string"
                  },
                  "html": {
                    "description": "Version HTML nettoyée de la page si `html` figure dans `formats`. Supprime les balises `<script>`, `<style>`, `<noscript>`, `<meta>` et `<head>` ; convertit les URL relatives en URL absolues ; résout les attributs `srcset` des images responsives vers leur plus grande version. Respecte les filtres `onlyMainContent`, `includeTags` et `excludeTags`.",
                    "nullable": true,
                    "type": "string"
                  },
                  "links": {
                    "description": "Liste des liens sur la page si `links` fait partie de `formats`",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "markdown": {
                    "type": "string"
                  },
                  "menu": {
                    "description": "Informations de menu extraites de la page si `menu` figure dans `formats`. Inclut l’établissement, la devise et une liste de sections, chaque section contenant des éléments avec description, images, prix, disponibilité, tags alimentaires, calories et groupes d’options.",
                    "nullable": true,
                    "properties": {
                      "confidence": {
                        "description": "Un score de confiance entre 0 et 1 pour l’extraction du menu.",
                        "type": "number"
                      },
                      "currency": {
                        "description": "Le code devise ISO 4217 du menu (par ex. 'USD'), renvoyé uniquement lorsque la page le fournit.",
                        "type": "string"
                      },
                      "isMenu": {
                        "description": "Indique si la page a été identifiée comme un menu.",
                        "type": "boolean"
                      },
                      "merchant": {
                        "description": "L’établissement auquel appartient le menu.",
                        "properties": {
                          "name": {
                            "description": "Le nom de l’établissement.",
                            "type": "string"
                          },
                          "type": {
                            "description": "Le type d’établissement (par ex. 'restaurant').",
                            "type": "string"
                          }
                        },
                        "required": [
                          "name"
                        ],
                        "type": "object"
                      },
                      "sections": {
                        "description": "Sections du menu (par ex. 'Entrées', 'Plats').",
                        "items": {
                          "properties": {
                            "description": {
                              "description": "La description de la section.",
                              "nullable": true,
                              "type": "string"
                            },
                            "id": {
                              "description": "L’identifiant de la section.",
                              "type": "string"
                            },
                            "items": {
                              "description": "Les éléments de la section.",
                              "items": {
                                "properties": {
                                  "availability": {
                                    "description": "La disponibilité de l’élément.",
                                    "properties": {
                                      "inStock": {
                                        "description": "Indique si l’élément est disponible.",
                                        "type": "boolean"
                                      },
                                      "text": {
                                        "description": "Texte de disponibilité lisible par une personne.",
                                        "nullable": true,
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "inStock"
                                    ],
                                    "type": "object"
                                  },
                                  "calories": {
                                    "description": "Le nombre de calories de l’élément.",
                                    "nullable": true,
                                    "type": "number"
                                  },
                                  "description": {
                                    "description": "La description de l’élément.",
                                    "nullable": true,
                                    "type": "string"
                                  },
                                  "dietary": {
                                    "description": "Tags alimentaires de l’élément (par ex. ['vegetarian']).",
                                    "items": {
                                      "type": "string"
                                    },
                                    "type": "array"
                                  },
                                  "id": {
                                    "description": "L’identifiant de l’élément.",
                                    "type": "string"
                                  },
                                  "identifiers": {
                                    "description": "Les identifiants propres à l’établissement pour l’élément.",
                                    "properties": {
                                      "merchantItemId": {
                                        "description": "L’identifiant interne de l’établissement pour l’élément.",
                                        "type": "string"
                                      }
                                    },
                                    "type": "object"
                                  },
                                  "images": {
                                    "description": "Images de l’élément.",
                                    "items": {
                                      "properties": {
                                        "alt": {
                                          "description": "Texte alternatif de l’image.",
                                          "nullable": true,
                                          "type": "string"
                                        },
                                        "url": {
                                          "description": "URL de l’image.",
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "url"
                                      ],
                                      "type": "object"
                                    },
                                    "type": "array"
                                  },
                                  "name": {
                                    "description": "Le nom de l’élément.",
                                    "type": "string"
                                  },
                                  "optionGroups": {
                                    "description": "Les groupes d’options/modificateurs de l’élément.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "type": "array"
                                  },
                                  "price": {
                                    "description": "Le prix de l’élément.",
                                    "properties": {
                                      "amount": {
                                        "description": "Le montant numérique du prix.",
                                        "type": "number"
                                      },
                                      "currency": {
                                        "description": "Le code devise ISO 4217 (par ex. 'USD').",
                                        "type": "string"
                                      },
                                      "formatted": {
                                        "description": "Le prix formaté pour l’affichage (par ex. '$7.99').",
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "amount"
                                    ],
                                    "type": "object"
                                  },
                                  "sourceUrl": {
                                    "description": "L’URL à partir de laquelle l’élément a été extrait.",
                                    "nullable": true,
                                    "type": "string"
                                  },
                                  "url": {
                                    "description": "L’URL canonique de l’élément.",
                                    "nullable": true,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "name"
                                ],
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "name": {
                              "description": "Le nom de la section.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "name",
                            "items"
                          ],
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "sourceUrl": {
                        "description": "L’URL à partir de laquelle le menu a été extrait.",
                        "nullable": true,
                        "type": "string"
                      }
                    },
                    "required": [
                      "isMenu",
                      "sections"
                    ],
                    "type": "object"
                  },
                  "metadata": {
                    "properties": {
                      "<any other metadata> ": {
                        "description": "Autres métadonnées extraites du HTML, sous forme de chaîne ou de tableau de chaînes",
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "concurrencyLimited": {
                        "description": "Indique si ce scrape a été ralenti en raison des limites de concurrence de l’Équipe",
                        "type": "boolean"
                      },
                      "concurrencyQueueDurationMs": {
                        "description": "Temps d’attente de la requête dans la file de concurrence, en millisecondes. Présent uniquement lorsque concurrencyLimited est défini sur true.",
                        "type": "number"
                      },
                      "contentType": {
                        "description": "Le type de contenu (type MIME) de la page, par exemple text/html, application/pdf",
                        "type": "string"
                      },
                      "description": {
                        "description": "Description extraite de la page, peut être une chaîne de caractères ou un tableau de chaînes de caractères",
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "error": {
                        "description": "Le message d’erreur de la page",
                        "nullable": true,
                        "type": "string"
                      },
                      "keywords": {
                        "description": "Mots-clés extraits de la page, sous forme d’une chaîne ou d’un tableau de chaînes",
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "language": {
                        "description": "Langue extraite de la page, peut être une chaîne ou un tableau de chaînes de caractères",
                        "nullable": true,
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "numPages": {
                        "description": "Pour les fichiers PDF, le nombre de pages traitées (limité par l’option maxPages du parser).",
                        "type": "integer"
                      },
                      "ogLocaleAlternate": {
                        "description": "Autres paramètres régionaux pour la page",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "sourceURL": {
                        "description": "L’URL initialement demandée. Elle peut différer de l’URL finale de la page si des redirections ont été appliquées.",
                        "format": "uri",
                        "type": "string"
                      },
                      "statusCode": {
                        "description": "Le code de statut de la page",
                        "type": "integer"
                      },
                      "title": {
                        "description": "Titre extrait de la page, peut être une chaîne de caractères ou un tableau de chaînes de caractères",
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "totalPages": {
                        "description": "Pour les fichiers PDF, le nombre réel de pages du document avant toute limitation par maxPages. Ce champ est omis lorsqu’il ne peut pas être déterminé ; si totalPages est supérieur à numPages, cela indique que le résultat a été tronqué.",
                        "type": "integer"
                      },
                      "url": {
                        "description": "L’URL finale de la page après application de l’ensemble des redirections.",
                        "format": "uri",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "product": {
                    "description": "Informations produit extraites de la page si `product` figure dans `formats`. Inclut le titre, la marque, la catégorie, la description et les variantes. La tarification, la disponibilité et les images se trouvent au niveau de chaque variante.",
                    "nullable": true,
                    "properties": {
                      "brand": {
                        "description": "La marque ou le fabricant du produit.",
                        "type": "string"
                      },
                      "category": {
                        "description": "La catégorie du produit, éventuellement sous forme de fil d’Ariane (par ex. 'Électronique > Audio > Casques').",
                        "type": "string"
                      },
                      "description": {
                        "description": "La description du produit.",
                        "type": "string"
                      },
                      "title": {
                        "description": "Le titre du produit.",
                        "type": "string"
                      },
                      "url": {
                        "description": "L’URL canonique de la page produit.",
                        "type": "string"
                      },
                      "variants": {
                        "description": "Variantes du produit (par ex. différentes couleurs ou tailles).",
                        "items": {
                          "properties": {
                            "availability": {
                              "description": "La disponibilité de la variante. Toujours présente pour une variante.",
                              "properties": {
                                "inStock": {
                                  "description": "Indique si la variante est en stock.",
                                  "type": "boolean"
                                },
                                "text": {
                                  "description": "Texte de disponibilité lisible par l’humain (par ex. 'En stock').",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "inStock"
                              ],
                              "type": "object"
                            },
                            "id": {
                              "description": "L’identifiant de la variante.",
                              "type": "string"
                            },
                            "images": {
                              "description": "Images de la variante.",
                              "items": {
                                "properties": {
                                  "alt": {
                                    "description": "Texte alternatif de l’image.",
                                    "type": "string"
                                  },
                                  "url": {
                                    "description": "URL de l’image.",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "url"
                                ],
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "price": {
                              "description": "Le prix actuel de la variante.",
                              "properties": {
                                "amount": {
                                  "description": "Le montant numérique du prix.",
                                  "type": "number"
                                },
                                "currency": {
                                  "description": "Le code devise ISO 4217 (par ex. 'USD').",
                                  "type": "string"
                                },
                                "formatted": {
                                  "description": "Le prix formaté pour l’affichage (par ex. '$199.99').",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "amount"
                              ],
                              "type": "object"
                            },
                            "sale": {
                              "description": "Informations de vente/remise pour la variante, présentes lorsque la variante bénéficie d’une remise.",
                              "properties": {
                                "originalPrice": {
                                  "description": "Le prix d’origine (avant remise) de la variante.",
                                  "properties": {
                                    "amount": {
                                      "description": "Le montant numérique du prix.",
                                      "type": "number"
                                    },
                                    "currency": {
                                      "description": "Le code devise ISO 4217 (par ex. 'USD').",
                                      "type": "string"
                                    },
                                    "formatted": {
                                      "description": "Le prix formaté pour l’affichage (par ex. '$249.99').",
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "amount"
                                  ],
                                  "type": "object"
                                }
                              },
                              "required": [
                                "originalPrice"
                              ],
                              "type": "object"
                            },
                            "sku": {
                              "description": "Le SKU de la variante.",
                              "type": "string"
                            },
                            "title": {
                              "description": "Le titre de la variante.",
                              "type": "string"
                            },
                            "values": {
                              "additionalProperties": {
                                "type": "string"
                              },
                              "description": "Les valeurs d’option de la variante (par ex. { \"color\": \"Black\" }).",
                              "type": "object"
                            }
                          },
                          "required": [
                            "availability"
                          ],
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "required": [
                      "title",
                      "url",
                      "variants"
                    ],
                    "type": "object"
                  },
                  "rawHtml": {
                    "description": "Le code HTML brut, exactement tel qu’il est reçu depuis la page lorsque `rawHtml` est inclus dans `formats`. Aucun nettoyage ni filtrage n’est appliqué.",
                    "nullable": true,
                    "type": "string"
                  },
                  "screenshot": {
                    "description": "Capture d’écran de la page si `screenshot` est inclus dans `formats`. Les captures d’écran expirent au bout de 24 heures et ne peuvent ensuite plus être téléchargées.",
                    "nullable": true,
                    "type": "string"
                  },
                  "summary": {
                    "description": "Résumé de la page si `summary` est inclus dans `formats`",
                    "nullable": true,
                    "type": "string"
                  },
                  "video": {
                    "description": "URL signée du fichier vidéo extrait si `video` figure dans `formats`. L'URL signée expire au bout d'1 heure.",
                    "nullable": true,
                    "type": "string"
                  },
                  "warning": {
                    "description": "Peut être affiché lorsque vous utilisez l’extraction LLM. Un message d’avertissement vous indiquera tout problème lors de l’extraction.",
                    "nullable": true,
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "success": {
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Réponse réussie"
    },
    "400": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "code": {
                "example": "BAD_REQUEST",
                "type": "string"
              },
              "error": {
                "example": "Invalid multipart form-data request.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Requête invalide"
    },
    "402": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Payment required to access this resource.",
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Paiement requis"
    },
    "429": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Request rate limit exceeded. Please wait and try again later.",
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Trop de requêtes"
    },
    "500": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "code": {
                "example": "UNKNOWN_ERROR",
                "type": "string"
              },
              "error": {
                "example": "An unexpected error occurred on the server.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Erreur serveur"
    }
  }
}
```
