Skip to main content

解析

PDF、Word、Excel、PowerPoint などのドキュメントを、クリーンな Markdown、ページ単位のコンテンツ、レイアウトブロック、構造化 JSON に変換
3 min read

解析はドキュメントをクリーンで LLM 対応のデータに変換します。ファイルを /parse にアップロードするか、公開ドキュメントの URL を /scrape に指定すると、Markdown、ページ単位のコンテンツ、型付きレイアウトブロック、または構造化 JSON が返されます。

  • レイアウトを考慮: 見出し、段落、表、数式を読み取り順序に配置
  • スキャンにも対応: ネイティブテキストを抽出し、画像のみのページでは OCR にフォールバック
  • 根拠に基づく構造: バウンディングボックスと Markdown 内の文字範囲へのリンクを持つ型付きレイアウトブロック (PDF)
  • 主要な形式に対応: PDF、Word、Excel、PowerPoint、OpenDocument、EPUB、CSV、HTML
  • ゼロデータ保持をサポート

クイックスタート#

Note

ファイルの代わりに公開ドキュメントURLをお持ちですか?/scrape はファイル形式を検出し、同じオプションと出力で同様に解析します: firecrawl.scrape("https://example.com/report.pdf")

レスポンス#

SDK ではドキュメントオブジェクトが直接返されます。cURL では JSON ペイロードが返されます。

Note

numPages は実際に解析されたページ数で、totalPages はドキュメントの 実際の総ページ数です。maxPages によって結果が切り詰められた場合を除き、両者は一致します。たとえば、 100 ページの PDF を maxPages: 10 で解析すると、numPages: 10totalPages: 100 が返されるため、 totalPages > numPages で出力が切り詰められたことがわかります。ページ数を判定できない場合、 totalPages は省略されます。

ドキュメントの Markdown に加え、単一の Markdown string では不十分なケースに対応する 3 つの出力があります。PDF ドキュメント向けの ページごとの Markdownレイアウトブロック、およびすべての形式向けの 構造化 JSON です。Markdown 自体の内部でページの帰属情報だけが 必要な場合は、ページマーカーがページ区切りをその場で注釈付けします。

ページごとのMarkdown (PDF)#

PDFパーサーpages: trueを設定すると、ドキュメントには各物理ページのMarkdownを含むpages配列も含まれます。コンテンツの出所ページを確認したり、ページを個別に処理したりする場合に便利です。 追加コストはかかりません。

ページマーカー (PDF)#

PDF パーサーpageMarkers: true を設定すると、ドキュメントの markdown 内の各ページが、後続する物理ページを示す HTML コメントマーカーで連結されます。

新しいレスポンスフィールドはありません。マーカーは markdown 内に含まれるため、 markdown の string のみを処理する下流のパイプラインでも、ページごとの 帰属情報を保持できます。markdown をレンダリングするとコメントは非表示になり、 (<!-- page N -->、1始まり) で簡単に分割できます。追加コストはかかりません。

Note

マーカーはページのにのみ表示され、ページ 1 の先頭にはありません。 パーサーが改ページをまたぐ content を結合すると、ページ番号が飛ぶことがあります (次のページにまたがる表や文には、マークする境界がありません) 。 物理ページごとに分ける必要がある場合は、pages: true を使用してください。 2 つのオプションは併用できます。

レイアウトブロック (PDF)#

PDF パーサーblocks: true を設定すると、ドキュメントには blocks 配列も含まれます。各ページで解析エンジンが検出した、型付きレイアウトブロックの ジオメトリ情報と出所情報を格納しています。これは markdown に対応する構造化データであり、引用の根拠付け、 ハイライトのオーバーレイ、ドキュメントの内容の監査に使用できます。追加コストはかかりません。

解析済み PDF ページ。検出された各レイアウトブロック(タイトル、テキスト、セクションヘッダー、表、図、キャプション、ページフッター、ページ番号)に色付きのバウンディングボックスが重ねて表示されています
エンジンが検出したすべてのブロックを、型と位置情報付きで表示します。markdown になる領域と同じです。

ブロックフィールド#

フィールド説明
idレスポンス内で一意かつ安定した ID: p<page>.b<index in reading order>
typeブロックタイプ: titlesection_headertexttableformulafigurecaptionpage_numberpage_headerpage_footer。今後、新しいタイプが追加される場合があります。
label生のレイアウトモデルラベル。将来の互換性のためにそのまま渡されます。
bboxページを基準として 0~1 に正規化された [x0, y0, x1, y1]。ピクセル座標を得るには width/height を乗算します。ページの寸法が不明な場合は null
contentこのブロックが生成した Markdown フラグメント。
markdownSpanこのブロックのフラグメントを含む、ドキュメントの markdown 内の [start, end) 文字オフセット。後処理でフラグメントが書き換えられた場合は null
readingOrder検出された読み取り順序内での位置。
sourceブロックを生成したパイプラインパス (例: native_textlayout_ocrtsrformula_model) 。
confidencelayout の検出スコア (0~1) と、ソースで提供される場合の ocr テキスト信頼度。その他の場合は null。独自に算出した集約値は使用しません。

根拠付け: 回答からページへ#

markdownSpan は、各ブロックを、そのブロックが生成した markdown 内の正確な部分文字列に紐付けます。 これにより、引用の根拠付けは推論ではなく検索で行えます。markdown 内で引用テキストを探し、 そのオフセットをカバーする span を持つブロックを見つければ、 言語モデルに座標を問い合わせることなく、ページ番号とバウンディングボックスを取得できます。

構造化JSON出力#

ドキュメントから構造化データを直接抽出するには、JSONスキーマまたはプロンプトを指定します。

PDF オプション#

PDF のすべての動作は、/parse/scrape の両方で parsers オプションにより制御されます。

プロパティデフォルト説明
type"pdf"(必須)パーサーの種類。
mode"fast" | "auto" | "ocr""auto"解析方法。詳細は以下を参照。
maxPagesinteger解析するページ数の上限。
pagesbooleanfalseページごとのMarkdownも返します。追加コストはかかりません。
blocksbooleanfalseバウンディングボックス付きのレイアウトブロックも返します。追加コストはかかりません。
pageMarkersbooleanfalseドキュメントのMarkdown内の改ページに、<!-- page N --> マーカーを付加します。追加コストはかかりません。

parsers: [] を渡すと解析を完全にスキップし、PDFをbase64形式で返します (固定1クレジット) 。

解析モード#

モード説明
autoまず高速なテキストベースの抽出を試み、必要なページではOCRにフォールバックします。デフォルト設定です。
fastテキストベースの抽出のみ (埋め込みテキスト) 。最速のオプションですが、スキャンされたページや画像のみのページでは、何も返さずに終わるのではなくエラーになります。
ocrすべてのページでOCRを強制します。スキャンされたドキュメントや、autoがページを誤分類する場合に使用します。

対応フォーマット#

拡張子: .html, .htm, .xhtml, .pdf, .docx, .doc, .docm, .odt, .ods, .odp, .rtf, .xlsx, .xls, .xlsm, .xlsb, .pptx, .ppt, .pptm, .epub, .csv.

各フォーマットの変換方法については、Document Parsingを参照してください。

リクエストリファレンス#

リクエストは multipart/form-data で、必須の file パートと 任意の options JSON パートで構成されます。options はスクレイピングのオプションの一部を受け付けます。

  • formats: 出力フォーマットの配列。デフォルトは ["markdown"]。対応フォーマット: markdownhtmlrawHtmllinksimagessummaryjson (スキーマまたはプロンプト付き) 。
  • onlyMainContent: ドキュメントのメインコンテンツのみを返します。デフォルトは true
  • includeTags / excludeTags: タグ単位での含める/除外の指定 (HTML 入力) 。
  • redactPII: 返される markdown から個人を特定できる情報をマスキングします。
  • timeout: リクエストのタイムアウト (ミリ秒) 。デフォルトは 30000、最大 300000
  • parsers: ファイルパーサーの制御 — PDF オプション を参照してください。
Note

/parse は、actionswaitForlocationmobile、change tracking などのブラウザ専用オプションには対応していません。

Tip

MCP 経由で Firecrawl を使用していますか? ローカルファイルには firecrawl_parse を使用してください。FIRECRAWL_API_URL を設定すると、ローカル MCP はファイルを直接読み取れます。リモートホスト型 MCP は、最初に短期間有効なアップロードコマンドを返し、その後、返された uploadRef を解析します。公開ドキュメントの URL には引き続き /scrape を使用してください。

考慮事項#

  • 1 リクエストあたりの最大ファイルサイズは 50 MB です。
  • PDF の解析は 1 ページあたり 1 クレジット です。pagesblockspageMarkers のオプションに追加コストはかかりません。
  • ocr モードで非常に大きい PDF やスキャンされた PDF を解析する場合、時間がかかることがあります。timeout を長めに設定するか、maxPages を使って処理範囲を制限してください。
  • 複数ファイルを扱う場合は、各ファイルに対して /parse を並列に呼び出してください。バッチアップロード用のバリアントはありません。

Firecrawl APIキー が必要な AIエージェントですか?自動オンボーディング手順については、firecrawl.dev/agent-onboarding/SKILL.md を参照してください。