メインコンテンツへスキップ
ヒーロー(ライト)

Firecrawlへようこそ

Firecrawl は、URLを受け取り、クロールしてクリーンなMarkdownに変換するAPIサービスです。アクセス可能なすべてのサブページをクロールし、それぞれにクリーンなMarkdownを提供します。サイトマップは不要です。

使い方

ホスト版で使える使いやすいAPIを提供しています。プレイグラウンドとドキュメントはこちら。必要に応じてバックエンドをセルフホストすることも可能です。 まずは次のリソースから始めてください: 欲しいSDKや統合が見当たりませんか?issueを作成してお知らせください。

API Key

API を使用するには、Firecrawl に登録して API キーを取得してください。

機能

  • Scrape: URLをスクレイピングし、LLM向けのフォーマット(Markdown、要約、JSONモードによる構造化データ、スクリーンショット、HTML)でコンテンツを取得
  • Crawl: ウェブページ内のすべてのURLをスクレイピングし、LLM向けのフォーマットでコンテンツを返す
  • Map: ウェブサイトを入力し、サイト内のすべてのURLを高速で取得
  • Search: ウェブを検索し、結果からコンテンツ全文を取得
  • Extract: 単一ページ、複数ページ、またはサイト全体からAIで構造化データを抽出

強力な機能

  • LLM対応フォーマット: Markdown、要約、構造化データ、スクリーンショット、HTML、リンク、メタデータ
  • 難所もお任せ: プロキシ、ボット対策、動的コンテンツ(JSレンダリング)、出力パース、オーケストレーション
  • 超高速: 数秒で結果を返却—スピードと高スループットのユースケース向けに設計。
  • カスタマイズ性: タグの除外、カスタムヘッダーで認証壁の背後をクロール、最大クロール深度など
  • メディア解析: PDF、DOCX、画像
  • 信頼性重視: 必要なデータを、どれだけ難しくても確実に取得
  • アクション: 抽出前に click、scroll、input、wait などを実行
Firecrawlのすべての機能と使い方は、ドキュメントで確認できます

Firecrawl のインストール

# pip install firecrawl-py

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

スクレイピング

単一のURLをスクレイプするには、scrape メソッドを使用します。URLを引数に取り、スクレイプしたデータをディクショナリとして返します。
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

# ウェブサイトをスクレイピングする:
doc = firecrawl.scrape("https://firecrawl.dev", formats=["markdown", "html"])
print(doc)

レスポンス

SDKはデータオブジェクトを直接返します。cURLは以下のとおり、ペイロードをそのまま返します。
{
  "success": true,
  "data" : {
    "markdown": "Launch Week I が開幕![2日目のリリースを見る 🚀](https://www.firecrawl.dev/blog/launch-week-i-day-2-doubled-rate-limits)[💥 2か月無料をゲット...",
    "html": "<!DOCTYPE html><html lang=\"en\" class=\"light\" style=\"color-scheme: light;\"><body class=\"__variable_36bd41 __variable_d7dc5d font-inter ...",
    "metadata": {
      "title": "ホーム - Firecrawl",
      "description": "Firecrawl は、あらゆるウェブサイトをクリーンな Markdown にクロールして変換します。",
      "language": "en",
      "keywords": "Firecrawl,Markdown,データ,Mendable,Langchain",
      "robots": "follow, index",
      "ogTitle": "Firecrawl",
      "ogDescription": "あらゆるウェブサイトを LLM で使えるデータに変換。",
      "ogUrl": "https://www.firecrawl.dev/",
      "ogImage": "https://www.firecrawl.dev/og.png?123",
      "ogLocaleAlternate": [],
      "ogSiteName": "Firecrawl"
      "sourceURL": "https://firecrawl.dev",
      "statusCode": 200
    }
  }
}

クローリング

クローリング機能を使うと、指定したURLと、そのURLからアクセス可能なすべてのサブページからコンテンツを自動的に検出・抽出できます。SDKでは crawl メソッドを呼ぶだけでクローリングジョブを送信し、完了まで待機して、サイト全体の結果をまとめて返します。

使い方

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

docs = firecrawl.crawl(url="https://docs.firecrawl.dev", limit=10)
print(docs)
API を直接利用する場合や、cURL、SDK の start crawl 関数を使う場合は、クロールのステータス確認に使用できる ID が返されます。
{
  "success": true,
  "id": "123-456-789",
  "url": "https://api.firecrawl.dev/v2/crawl/123-456-789"
}

クロールのステータスを取得

クロールジョブの進行状況を確認し、結果を取得します。
status = firecrawl.get_crawl_status("<crawl-id>")
print(status)

レスポンス

レスポンスはクロールのステータスによって異なります。未完了の場合や、10MBを超える大きなレスポンスの場合は、next URLパラメータが付与されます。次の10MBのデータを取得するには、このURLにリクエストしてください。next パラメータがない場合は、クロールデータの末尾であることを示します。
{
  "status": "スクレイピング中",
  "total": 36,
  "completed": 10,
  "creditsUsed": 10,
  "expiresAt": "2024-00-00T00:00:00.000Z",
  "next": "https://api.firecrawl.dev/v2/crawl/123-456-789?skip=10",
  "data": [
    {
      "markdown": "[Firecrawl ドキュメントのホームページ![ライトロゴ](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...",
      "html": "<!DOCTYPE html><html lang=\"en\" class=\"js-focus-visible lg:[--scroll-mt:9.5rem]\" data-js-focus-visible=\"\">...",
      "metadata": {
        "title": "Groq Llama 3 で「ウェブサイトとチャット」を構築する | Firecrawl",
        "language": "en",
        "sourceURL": "https://docs.firecrawl.dev/learn/rag-llama3",
        "description": "Firecrawl、Groq Llama 3、LangChain を使って「自分のウェブサイトとチャットする」ボットの作り方を学びます。",
        "ogLocaleAlternate": [],
        "statusCode": 200
      }
    },
    ...
  ]
}

JSONモード

JSONモードを使うと、あらゆるURLから構造化データを簡単に抽出できます。pydanticのスキーマにも対応しているため、より手軽に利用できます。使い方は次のとおりです:
from firecrawl import Firecrawl
from pydantic import BaseModel
app = Firecrawl(api_key="fc-YOUR-API-KEY")

class JsonSchema(BaseModel):
    company_mission: str
    supports_sso: bool
    is_open_source: bool
    is_in_yc: bool

result = app.scrape(
    'https://firecrawl.dev',
    formats=[{
      "type": "json",
      "schema": JsonSchema
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
出力:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI対応のウェブスクレイピングとデータ抽出",
        "supports_sso": true,
        "is_open_source": true,
        "is_in_yc": true
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI対応のウェブスクレイピングとデータ抽出",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI対応のウェブスクレイピングとデータ抽出",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}
Firecrawl の検索APIを使うと、ウェブ検索と、必要に応じた検索結果のスクレイピングを1回の操作で実行できます。
  • 出力フォーマット(markdown、HTML、links、screenshots)を選択
  • 取得元のソース(web、news、images)を選択
  • カスタマイズ可能なパラメータ(location など)でウェブを検索
詳細は Search Endpoint API Reference を参照してください。
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

results = firecrawl.search(
    query="Firecrawl",
    limit=3,
)
print(results)

レスポンス

SDK はデータオブジェクトを直接返します。cURL は完全なペイロードを返します。
JSON
{
  "success": true,
  "data": {
    "web": [
      {
        "url": "https://www.firecrawl.dev/",
        "title": "Firecrawl - AI向けWebデータAPI",
        "description": "AI向けのウェブクローリング、スクレイピング、検索API。大規模運用に対応。Firecrawlはインターネット全体をAIエージェントやビルダーに提供します。",
        "position": 1
      },
      {
        "url": "https://github.com/mendableai/firecrawl",
        "title": "mendableai/firecrawl: サイト全体をLLM対応に変換する ... - GitHub",
        "description": "FirecrawlはURLを受け取り、クロールして、クリーンなMarkdownまたは構造化データに変換するAPIサービスです。",
        "position": 2
      },
      ...
    ],
    "images": [
      {
        "title": "クイックスタート | Firecrawl",
        "imageUrl": "https://mintlify.s3.us-west-1.amazonaws.com/firecrawl/logo/logo.png",
        "imageWidth": 5814,
        "imageHeight": 1200,
        "url": "https://docs.firecrawl.dev/",
        "position": 1
      },
      ...
    ],
    "news": [
      {
        "title": "Y CombinatorのスタートアップFirecrawl、従業員としてAIエージェント3名を採用するために100万ドルの予算を用意",
        "url": "https://techcrunch.com/2025/05/17/y-combinator-startup-firecrawl-is-ready-to-pay-1m-to-hire-three-ai-agents-as-employees/",
        "snippet": "現在、YCの求人ボードに「AIエージェントのみ」を対象とした新規求人を3件掲載し、実現のために合計100万ドルの予算を確保しています。",
        "date": "3か月前"
        "position": 1
      },
      ...
    ]
  }
}

スキーマなしで抽出

エンドポイントにpromptを渡すだけで、スキーマを用いずに抽出できます。LLMがデータの構造を決定します。
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR-API-KEY")

result = app.scrape(
    'https://firecrawl.dev',
    formats=[{
      "type": "json",
      "prompt": "ページから企業のミッションを抽出してください。"
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
出力:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI搭載のウェブスクレイピングとデータ抽出",
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI搭載のウェブスクレイピングとデータ抽出",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI搭載のウェブスクレイピングとデータ抽出",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}

アクションでページを操作する

Firecrawl では、コンテンツをスクレイピングする前に、ウェブページ上でさまざまなアクションを実行できます。これは、動的コンテンツの操作、ページ遷移、ユーザー操作が必要なコンテンツへのアクセスに特に有用です。 以下は、アクションを使って google.com に移動し、Firecrawl を検索し、最初の結果をクリックしてスクリーンショットを取得する例です。 ページの読み込みに十分な時間を確保するため、他のアクションの実行前後には、ほぼ常に wait アクションを使用することが重要です。

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

doc = firecrawl.scrape('https://example.com/login', {
  formats=['markdown'],
  actions=[
    { type: 'write', text: 'john@example.com' },
    { type: 'press', key: 'Tab' },
    { type: 'write', text: 'secret' },
    { type: 'click', selector: 'button[type="submit"]' },
    { type: 'wait', milliseconds: 1500 },
    { type: 'screenshot', fullPage: true },
  ],
});

print(doc.markdown, doc.screenshot);

出力

{
  "success": true,
  "data": {
    "markdown": "初のローンチウィークが終了しました! [まとめを見る 🚀](blog/firecrawl-launch-week-1-recap)...",
    "actions": {
      "screenshots": [
        "https://alttmdsdujxrfnakrkyi.supabase.co/storage/v1/object/public/media/screenshot-75ef2d87-31e0-4349-a478-fb432a29e241.png"
      ],
      "scrapes": [
        {
          "url": "https://www.firecrawl.dev/",
          "html": "<html><body><h1>Firecrawl</h1></body></html>"
        }
      ]
    },
    "metadata": {
      "title": "ホーム - Firecrawl",
      "description": "Firecrawlは、あらゆるウェブサイトをクリーンなMarkdownに変換します。",
      "language": "en",
      "keywords": "Firecrawl,Markdown,データ,Mendable,Langchain",
      "robots": "follow, index",
      "ogTitle": "Firecrawl",
      "ogDescription": "あらゆるウェブサイトをLLM対応のデータに変換。",
      "ogUrl": "https://www.firecrawl.dev/",
      "ogImage": "https://www.firecrawl.dev/og.png?123",
      "ogLocaleAlternate": [],
      "ogSiteName": "Firecrawl",
      "sourceURL": "http://google.com",
      "statusCode": 200
    }
  }
}

オープンソース vs クラウド

Firecrawl は AGPL-3.0 ライセンス の下で公開されているオープンソースです。 最良のプロダクトを提供するため、オープンソース版に加えてホスト型の Firecrawl も提供しています。クラウドソリューションにより、すべてのユーザーに対して継続的な機能改善と、高品質で持続可能なサービスを提供できます。 Firecrawl Cloud は firecrawl.dev で利用でき、オープンソース版にはない多様な機能を備えています。
Firecrawl Cloud とオープンソースの比較

コントリビューション

貢献を歓迎しています!プルリクエストを送信する前に、貢献ガイドをお読みください。