Node.js アプリケーションから、単一ページをスクレイピングし、サイト全体をクロールし、URL をマップできます。SDK がページネーション、リトライ、非同期ジョブのポーリングを処理するため、返されたデータの利用に集中できます。
インストール#
npm で SDK をインストールします:
使い方#
- firecrawl.dev から API キーを取得します。
- 環境変数
FIRECRAWL_API_KEYに API キーを設定するか、Firecrawlクラスにパラメータとして渡します。
API キーがありませんか? キーなしで Firecrawl を作成し、キー不要の Free ティアで scrape、search、interact を利用できます (IP ごとにレート制限あり — Rate Limits を参照) 。それ以外のすべてのメソッドにはキーが必要です。
エラーハンドリング付きで SDK を使用する例は次のとおりです:
URLをスクレイピングする#
scrape メソッドを使用すると、単一のURLをスクレイピングして構造化されたページデータを取得できます。
アップロードしたファイルの解析#
URLを指定してスクレイピングする代わりに、ローカルファイル (html、pdf、docx、xlsx など) をアップロードする場合は parse を使用します。
parse は changeTracking や、screenshot、branding、actions、waitFor、location、mobile などのブラウザ専用オプションには対応していません。
Web サイトをクロールする#
crawl メソッドを使用すると、単一の URL から Web サイト全体をクロールできます。ページ数の上限を設定したり、特定のドメインのみに制限したり、出力フォーマットを選択したりできます。自動ページネーションと手動ページネーションについては、Pagination を参照してください。
サイトマップのみクロール#
sitemap: "only" を使用すると、サイトマップ内の URL のみをクロールします (開始URLは常に対象に含まれ、HTML リンクの探索は行われません) 。
クロールを開始#
startCrawl を使うと、完了を待たずにクロールを開始できます。このメソッドは、後からポーリングできるジョブ ID を返します。完了まで待って処理をブロックしたい場合は、代わりに crawl を使用してください。ページングの挙動と制限については Pagination を参照してください。
クロールのステータスを確認する#
checkCrawlStatus メソッドを使うと、クロールがまだ実行中か、完了したか、失敗したかを確認できます。startCrawl から返されたジョブ ID を渡します。
クロールのキャンセル#
実行中のクロールは、cancelCrawl メソッドでキャンセルできます。startCrawl が返すジョブ ID を渡してください。
Web サイトのマッピング#
Web サイト上のすべての URL を検出するには、map メソッドを使用します。開始 URL を渡すと、検出されたページの一覧が返されます。
エージェントの実行#
agent メソッドを使用して、調査または抽出タスクをエージェントに渡します。prompt、出力形式を指定する任意の schema、実行で消費できるクレジットの上限を設定する maxCredits を指定します。
エージェントの実行は非同期です。startAgent を使用するとすぐにジョブ ID が返され、その後 getAgentStatus でポーリングできます。
各実行では、実行トレースと出力スナップショットも記録されます。これらは getAgentTrace と getAgentSnapshot で取得できます。イベントスキーマとすべてのパラメータについては、Agent を参照してください。
WebSockets を使って Web サイトをクロールする#
watcher(jobId, options) を使うと、クロール結果をリアルタイムで受け取れます。ジョブ全体の完了を待たずに、各ページがクロールされるたびに受け取れます。
ページネーション#
Firecrawl の /crawl と batch の各エンドポイントは、追加のデータがある場合に next URL を返します。Node SDK はデフォルトで自動ページネーションを行い、すべてのドキュメントを集約します。その場合は next が null になります。自動ページネーションを無効にしたり、上限を設定したりできます。
クロール#
最も手軽なのはウェイター方式の crawl を使うことです。あるいはジョブを開始して、ページングを手動で行ってください。
シンプルなクロール (自動ページ送り、デフォルト)
- 既定のフローはウェブサイトのクロールを参照してください。
ページネーション制御付きの手動クロール (単一ページ)
- ジョブを開始し、
autoPaginate: falseを指定して1ページずつ取得します。
制限付きの手動クロール (自動ページネーション + 早期停止)
- 自動ページネーションはオンのまま、
maxPages、maxResults、またはmaxWaitTimeで早めに停止します。
バッチスクレイプ#
waiter メソッド batchScrape を使うか、ジョブを開始して手動でページングします。
シンプルなバッチスクレイプ (自動ページネーション、デフォルト)
- 既定のフローは Batch Scrape を参照してください。
ページネーション制御による手動バッチスクレイプ (単一ページ)
- ジョブを開始し、
autoPaginate: falseを指定して1ページずつ取得します。
制限付きの手動バッチスクレイプ (自動ページネーション+早期停止)
- 自動ページネーションは有効のまま、
maxPages、maxResults、またはmaxWaitTimeで早期停止します。
ブラウザ#
クラウドブラウザセッションを起動し、リモートでコードを実行します。
セッションを作成する#
コードを実行#
Pythonの代わりにJavaScriptを実行する場合:
agent-browserでbashを実行します:
プロファイル#
セッションをまたいでブラウザの状態 (クッキー、localStorage など) を保存し、再利用できます。
CDP 経由で接続する#
Playwright をフルに制御するには、CDP URL を使用して直接接続します。
セッションの一覧表示と終了#
スクレイピングに紐づくインタラクティブセッション#
スクレイピングジョブIDを使うと、そのスクレイピングで再現されたページコンテキストに対して続けて操作できます。
interact(jobId, {...})は、スクレイピングに紐づくブラウザセッション内でコードを実行します。- 最初の
interact呼び出しでは、スクレイピングコンテキストからセッションが自動的に初期化されます。 - 同じジョブIDに対する以降の
interact呼び出しでは、そのままライブのブラウザ状態が再利用されます。 stopInteraction(jobId)は、完了後にインタラクティブセッションを停止します。
エラーハンドリング#
この SDK は Firecrawl API から返されるあらゆるエラーに対して、わかりやすい例外を送出します。上記の例に示すように、呼び出しは try/catch ブロックで囲んでください。
Firecrawl API キーが必要な AI agent ですか?自動オンボーディング手順については、firecrawl.dev/agent-onboarding/SKILL.md を参照してください。

