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
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" },
});
}
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" },
});
}
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" },
});
}
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.
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.