Passer au contenu principal

Prérequis

Mise en place

npm install fastify @mendable/firecrawl-js
Ajoutez votre clé API à .env :
FIRECRAWL_API_KEY=fc-YOUR-API-KEY

Rechercher sur le web

import Fastify from "fastify";
import Firecrawl from "@mendable/firecrawl-js";

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

fastify.post("/search", async (request) => {
  const { query } = request.body;
  return firecrawl.search(query, { limit: 5 });
});

fastify.listen({ port: 3000 });

Extraire les données d’une page

fastify.post("/scrape", async (request) => {
  const { url } = request.body;
  return firecrawl.scrape(url);
});

Interact avec une page

Utilisez interact pour contrôler une session de navigateur en direct — cliquez sur des boutons, remplissez des formulaires et extrayez du contenu dynamique.
fastify.post("/interact", async (request) => {
  const { url } = request.body;

  const result = await firecrawl.scrape(url, { 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 { output: response.output };
});

Comme plugin Fastify

Encapsulez le client dans un plugin afin de le réutiliser sur plusieurs routes :
import fp from "fastify-plugin";
import Firecrawl from "@mendable/firecrawl-js";

export default fp(async function firecrawlPlugin(fastify) {
  const client = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });
  fastify.decorate("firecrawl", client);
});
Enregistrez le plugin, puis utilisez fastify.firecrawl dans n’importe quelle route :
fastify.register(firecrawlPlugin);

fastify.post("/search", async function (request) {
  const { query } = request.body;
  return this.firecrawl.search(query, { limit: 5 });
});

Essayez-le

curl -X POST http://localhost:3000/search \
  -H "Content-Type: application/json" \
  -d '{"query": "firecrawl web scraping"}'

Prochaines étapes

Documentation Scrape

Toutes les options de scrape : formats, actions et proxies

Documentation Search

Rechercher sur le web et obtenir le contenu complet des pages

Documentation Interact

Cliquer, remplir des formulaires et extraire du contenu dynamique

Référence du SDK Node

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