Parse convertit les documents en données propres, prêtes pour les LLM. Importez un fichier via
/parse — ou utilisez /scrape
avec l’URL d’un document public — et obtenez du markdown, du contenu de chaque page, des
blocs de mise en page typés ou du JSON structuré.
- Respect de la mise en page : titres, paragraphes, tableaux et formules assemblés dans l’ordre de lecture
- Documents numérisés pris en charge : extraction de texte natif avec OCR comme solution de repli pour les pages ne contenant que des images
- Structure ancrée dans le document : blocs de mise en page typés avec boîtes englobantes et liens vers des plages de caractères du markdown (PDF)
- Tous les formats courants : PDF, Word, Excel, PowerPoint, OpenDocument, EPUB, CSV, HTML
- Prise en charge de Zero Data Retention
Démarrage rapide#
Vous avez une URL publique vers un document plutôt qu’un fichier ? /scrape
détecte le type de fichier et l’analyse de la même façon — mêmes options, même résultat :
firecrawl.scrape("https://example.com/report.pdf").
Réponse#
Les SDK renvoient directement l’objet document. cURL renvoie le payload JSON.
numPages est le nombre de pages réellement analysées ; totalPages correspond au nombre
réel de pages du document. Ils correspondent sauf si maxPages a tronqué le résultat — p. ex. l’analyse
d’un PDF de 100 pages avec maxPages: 10 renvoie numPages: 10 et totalPages: 100, donc
totalPages > numPages indique que la sortie a été tronquée. totalPages est omis
lorsque le nombre de pages ne peut pas être déterminé.
Au-delà du markdown du document, trois sorties couvrent les cas où une seule chaîne markdown ne suffit pas : le markdown de chaque page et les blocs de mise en page pour les documents PDF, et le JSON structuré pour tous les formats. Et lorsque vous avez uniquement besoin de l’attribution des pages dans le markdown lui-même, les marqueurs de page annotent les sauts de page sur place.
Markdown par page (PDF)#
Activez pages: true dans l'analyseur PDF pour que le document contienne également
un tableau pages avec le markdown de chaque page — utile pour savoir de quelle page provient le contenu
ou pour traiter les pages indépendamment. Sans coût supplémentaire.
Marqueurs de page (PDF)#
Définissez pageMarkers: true dans l'analyseur PDF : les pages du
markdown du document sont alors séparées par un marqueur de commentaire HTML indiquant la
page physique suivante :
Il n’y a pas de nouveau champ de réponse : les marqueurs sont inclus dans le markdown. Ainsi,
tout pipeline en aval qui ne traite qu’une chaîne markdown conserve l’attribution
de chaque page. Les commentaires sont invisibles au rendu du markdown et
faciles à utiliser comme séparateurs (<!-- page N -->, numérotation à partir de 1). Aucun coût supplémentaire.
Les marqueurs apparaissent uniquement entre les pages : il n’y a pas de marqueur initial pour la page 1.
La numérotation peut sauter une page lorsque le parseur fusionne du contenu de part et d’autre d’un saut de page
(un tableau ou une phrase qui se poursuit sur la page suivante ne laisse aucune limite à
marquer). Utilisez pages: true lorsque vous avez besoin de chaque
page physique séparément ; les deux options peuvent être combinées.
Blocs de mise en page (PDF)#
Définissez blocks: true dans l’analyseur PDF ; le document contient alors également
un tableau blocks : pour chaque page, les blocs de mise en page typés détectés par le moteur d’analyse,
avec leur géométrie et leur provenance. Il s’agit du pendant structuré
du markdown : utilisez-le pour l’ancrage des citations, superposer des surlignages
ou auditer le contenu d’un document. Sans coût supplémentaire.

Champs de bloc#
| Champ | Description |
|---|---|
id | Stable au sein d'une réponse : p<page>.b<index in reading order>. |
type | Type de bloc : title, section_header, text, table, formula, figure, caption, page_number, page_header, page_footer. De nouveaux types peuvent apparaître au fil du temps. |
label | Étiquette brute du modèle de mise en page, transmise telle quelle pour assurer la compatibilité ascendante. |
bbox | [x0, y0, x1, y1] normalisé entre 0 et 1 par rapport à la page. Multipliez par width/height pour obtenir les coordonnées en pixels. null lorsque les dimensions de la page sont inconnues. |
content | Fragment Markdown apporté par ce bloc. |
markdownSpan | Décalages de caractères [start, end) dans le markdown du document correspondant au fragment de ce bloc. null lorsque le post-traitement a réécrit le fragment. |
readingOrder | Position dans l'ordre de lecture détecté. |
source | Chemin du pipeline ayant produit le bloc (p. ex. native_text, layout_ocr, tsr, formula_model). |
confidence | Score de détection layout (0–1) et niveau de confiance du texte ocr lorsque la source en fournit un ; null sinon — jamais une agrégation inventée. |
Ancrage : d’une réponse à la page#
markdownSpan lie chaque bloc à la sous-chaîne exacte du markdown qu’il a
produit. L’ancrage des citations relève donc d’une recherche, et non d’une inférence : trouvez le
texte cité dans le markdown, puis le bloc dont la plage couvre ce décalage,
et vous obtenez le numéro de page et la boîte englobante — sans jamais demander de
coordonnées à un modèle de langage.
Sortie JSON structurée#
Fournissez un schéma JSON ou un prompt pour extraire des données structurées directement du document :
Options pour les PDF#
Le comportement des PDF est entièrement contrôlé par l’option parsers, aussi bien pour /parse que pour
/scrape :
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
type | "pdf" | (obligatoire) | Type d’analyseur. |
mode | "fast" | "auto" | "ocr" | "auto" | Stratégie d’analyse — voir ci-dessous. |
maxPages | integer | — | Limite le nombre de pages à analyser. |
pages | boolean | false | Renvoie également le Markdown de chaque page. Aucun coût supplémentaire. |
blocks | boolean | false | Renvoie également les blocs de mise en page avec leurs boîtes englobantes. Aucun coût supplémentaire. |
pageMarkers | boolean | false | Annote les sauts de page dans le Markdown du document avec des marqueurs <!-- page N -->. Aucun coût supplémentaire. |
Passer parsers: [] désactive entièrement l’analyse et renvoie le PDF en base64
(1 crédit forfaitaire).
Modes d’analyse#
| Mode | Description |
|---|---|
auto | Tente d’abord une extraction rapide basée sur le texte, puis bascule vers l’OCR lorsqu’une page le nécessite. C’est le mode par défaut. |
fast | Extraction basée uniquement sur le texte (texte intégré). Option la plus rapide, mais échoue sur les pages numérisées ou ne contenant que des images, plutôt que de ne rien renvoyer silencieusement. |
ocr | Force l’OCR sur chaque page. À utiliser pour les documents numérisés ou lorsque auto classe mal une page. |
Formats pris en charge#
Extensions : .html, .htm, .xhtml, .pdf, .docx, .doc, .docm, .odt, .ods, .odp, .rtf, .xlsx, .xls, .xlsm, .xlsb, .pptx, .ppt, .pptm, .epub, .csv.
Voir Document Parsing pour savoir comment chaque format est converti.
Référence de la requête#
La requête est au format multipart/form-data avec une partie file obligatoire et une
partie JSON options facultative. options accepte un sous-ensemble des options de scrape :
formats: tableau de formats de sortie. Valeur par défaut :["markdown"]. Pris en charge :markdown,html,rawHtml,links,images,summaryetjson(avec un schéma ou un prompt).onlyMainContent: renvoie uniquement le contenu principal du document. Valeur par défaut :true.includeTags/excludeTags: inclusion ou exclusion au niveau des balises (éléments HTML).redactPII: masque les informations personnelles identifiables dans le markdown renvoyé.timeout: délai d’expiration de la requête en millisecondes. Valeur par défaut :30000, maximum300000.parsers: paramètres du parseur de fichiers — consultez les options PDF.
/parse ne prend pas en charge les options réservées au navigateur comme actions, waitFor, location, mobile ou le suivi des modifications.
Vous utilisez Firecrawl via MCP ? Utilisez firecrawl_parse pour les fichiers locaux. Le MCP local peut lire directement le fichier lorsqu’il est configuré avec FIRECRAWL_API_URL. Le MCP hébergé à distance renvoie d’abord une commande de téléversement à durée de vie limitée, puis analyse l’uploadRef renvoyé. Les URL de documents publics doivent toujours utiliser /scrape.
Considérations#
- La taille maximale de fichier est de 50 MB par requête.
- L’analyse de PDF est facturée à 1 crédit par page ; les options
pages,blocksetpageMarkersn’entraînent aucun coût supplémentaire. - L’analyse de PDF très volumineux ou numérisés en mode
ocrpeut prendre plus de temps — augmenteztimeoutou utilisezmaxPagespour limiter le traitement. - Pour des lots de fichiers, appelez
/parsepour chaque fichier en parallèle ; il n’existe pas d’option de téléversement par lot.
Êtes-vous un agent IA qui a besoin d’une clé API Firecrawl ? Consultez firecrawl.dev/agent-onboarding/SKILL.md pour obtenir des instructions d’intégration automatisée.

