Skip to main content

Parse

Convertissez des documents — PDF, Word, Excel, PowerPoint et bien d’autres — en markdown propre, contenu de chaque page, blocs de mise en page et JSON structuré
7 min read

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#

Note

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.

Note

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.

Note

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.

Une page PDF analysée avec des boîtes englobantes colorées superposées sur chaque bloc de mise en page détecté : titre, texte, en-têtes de section, tableau, figure, légende, pied de page et numéro de page
Chaque bloc détecté par le moteur, typé et positionné — les mêmes régions qui deviennent du markdown.

Champs de bloc#

ChampDescription
idStable au sein d'une réponse : p<page>.b<index in reading order>.
typeType 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.
contentFragment Markdown apporté par ce bloc.
markdownSpanDé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.
readingOrderPosition dans l'ordre de lecture détecté.
sourceChemin du pipeline ayant produit le bloc (p. ex. native_text, layout_ocr, tsr, formula_model).
confidenceScore 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éTypePar défautDescription
type"pdf"(obligatoire)Type d’analyseur.
mode"fast" | "auto" | "ocr""auto"Stratégie d’analyse — voir ci-dessous.
maxPagesintegerLimite le nombre de pages à analyser.
pagesbooleanfalseRenvoie également le Markdown de chaque page. Aucun coût supplémentaire.
blocksbooleanfalseRenvoie également les blocs de mise en page avec leurs boîtes englobantes. Aucun coût supplémentaire.
pageMarkersbooleanfalseAnnote 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#

ModeDescription
autoTente 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.
fastExtraction 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.
ocrForce 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, summary et json (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, maximum 300000.
  • parsers : paramètres du parseur de fichiers — consultez les options PDF.
Note

/parse ne prend pas en charge les options réservées au navigateur comme actions, waitFor, location, mobile ou le suivi des modifications.

Tip

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, blocks et pageMarkers n’entraînent aucun coût supplémentaire.
  • L’analyse de PDF très volumineux ou numérisés en mode ocr peut prendre plus de temps — augmentez timeout ou utilisez maxPages pour limiter le traitement.
  • Pour des lots de fichiers, appelez /parse pour 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.