メインコンテンツへスキップ

前提条件

  • Vercelプロジェクト (Next.js、SvelteKit、Nuxt、またはスタンドアロン)
  • Firecrawl APIキー — 無料で取得

セットアップ

npm install @mendable/firecrawl-js
FIRECRAWL_API_KEY を、Vercel プロジェクトの設定、またはローカル開発用の .env.local に環境変数として追加します:
FIRECRAWL_API_KEY=fc-YOUR-API-KEY

Web を検索する

api/search.ts (Next.js の場合は app/api/search/route.ts) を作成します:
import Firecrawl from "@mendable/firecrawl-js";

const firecrawl = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });

export async function POST(request: Request) {
  const { query } = await request.json();
  const results = await firecrawl.search(query, { limit: 5 });

  return new Response(JSON.stringify(results), {
    headers: { "Content-Type": "application/json" },
  });
}

ページをスクレイピング

api/scrape.ts (Next.js の場合は app/api/scrape/route.ts) を作成します。
import Firecrawl from "@mendable/firecrawl-js";

const firecrawl = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });

export async function POST(request: Request) {
  const { url } = await request.json();
  const result = await firecrawl.scrape(url);

  return new Response(JSON.stringify(result), {
    headers: { "Content-Type": "application/json" },
  });
}

ページに対してInteractする

api/interact.ts (Next.js の場合は app/api/interact/route.ts) を作成します:
import Firecrawl from "@mendable/firecrawl-js";

const firecrawl = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });

export async function POST(request: Request) {
  const result = await firecrawl.scrape("https://www.amazon.com", {
    formats: ["markdown"],
  });
  const scrapeId = result.metadata?.scrapeId;

  await firecrawl.interact(scrapeId, {
    prompt: "Search for iPhone 16 Pro Max",
  });
  const response = await firecrawl.interact(scrapeId, {
    prompt: "Click on the first result and tell me the price",
  });

  await firecrawl.stopInteraction(scrapeId);

  return new Response(JSON.stringify({ output: response.output }), {
    headers: { "Content-Type": "application/json" },
  });
}

デプロイ

vercel deploy

試す

curl -X POST https://your-project.vercel.app/api/search \
  -H "Content-Type: application/json" \
  -d '{"query": "firecrawl web scraping"}'
Vercel Functions のデフォルトのタイムアウトは、Hobby プランでは 10 秒、Pro では 60 秒です。大規模なクロールジョブには、代わりに webhook 対応の Firecrawl 非同期 API を使用してください。

次のステップ

Search ドキュメント

ウェブを検索し、ページ全文を取得

スクレイピング ドキュメント

フォーマット、アクション、プロキシを含むスクレイピングのオプション

Interact ドキュメント

クリックやフォーム入力で動的コンテンツを抽出

Node SDK リファレンス

クロール、map、バッチスクレイプなどを網羅した SDK リファレンス