Passer au contenu principal

Prérequis

Configuration

npm install @mendable/firecrawl-js
Ajoutez FIRECRAWL_API_KEY en tant que variable d’environnement dans les paramètres de votre projet Vercel, ou dans .env.local pour le développement local :
FIRECRAWL_API_KEY=fc-YOUR-API-KEY

Recherche sur le Web

Créez api/search.ts (ou app/api/search/route.ts pour Next.js) :
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" },
  });
}

Scrape une page

Créez api/scrape.ts (ou app/api/scrape/route.ts pour Next.js) :
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 avec une page

Créez api/interact.ts (ou app/api/interact/route.ts pour Next.js) :
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" },
  });
}

Déployer

vercel deploy

Testez-le

curl -X POST https://your-project.vercel.app/api/search \
  -H "Content-Type: application/json" \
  -d '{"query": "firecrawl web scraping"}'
Les Vercel Functions ont un délai d’expiration par défaut de 10 secondes sur l’offre Hobby et de 60 secondes sur l’offre Pro. Pour les gros jobs de crawl, utilisez plutôt l’API asynchrone de Firecrawl avec des webhooks.

Étapes suivantes

Documentation de recherche

Effectuez des recherches sur le web et obtenez le contenu complet des pages

Documentation sur le scrape

Toutes les options de scrape, y compris les formats, les actions et les proxies

Documentation Interact

Cliquez, remplissez des formulaires et extrayez du contenu dynamique

Référence du SDK Node

Référence complète du SDK avec crawl, cartographie, extraction par lot, etc.