firecrawl-aisdk
Scrape content from a single URL with advanced options. Best for: Single page content extraction when you know the exact URL. Returns: Content in specified formats (markdown, html, rawHtml, screenshot, or links). Example use cases: - Extract article content from a blog post - Get product information from an e-commerce page - Scrape documentation from a specific page
by firecrawl
Test firecrawl-aisdk (scrapeTool) with AI-powered execution
0/2000 characters
Install this tool and use it with the AI SDK
npm install firecrawl-aisdkpnpm add firecrawl-aisdkimport { scrapeTool } from 'firecrawl-aisdk';import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { scrapeTool } from 'firecrawl-aisdk';
const result = await generateText({
model: openai('gpt-4o'),
tools: { scrapeTool },
prompt: 'Your prompt here...',
});
console.log(result.text);How AI agents can use this tool
Use when you need to convert web pages to clean, structured markdown
Available configuration options
urlstringThe URL to scrape content from
formatsarrayOutput formats for the scraped content
parsersarrayParsers to use for processing content (e.g., PDF parsing)
onlyMainContentbooleanExtract only the main content, removing headers, footers, and navigation
includeTagsarrayHTML tags to include in the output
excludeTagsarrayHTML tags to exclude from the output
waitFornumberTime in milliseconds to wait before scraping
actionsarrayBrowser actions to perform before scraping (click, scroll, type, wait, etc.)
mobilebooleanEmulate mobile device
skipTlsVerificationbooleanSkip TLS certificate verification
removeBase64ImagesbooleanRemove base64 encoded images from the output
locationobjectLocation settings for the scraping request
storeInCachebooleanStore the scraped content in cache
maxAgenumberMaximum age of cached content in milliseconds. Default: 172800000 (2 days)
headersobjectCustom headers to send with the request (cookies, user-agent, etc.)
blockAdsbooleanEnable ad-blocking and cookie popup blocking. Default: true
proxystringProxy type: basic (fast), stealth (reliable, 5 credits), auto (retry with stealth). Default: auto
zeroDataRetentionbooleanEnable zero data retention. Contact help@firecrawl.dev to enable this feature
timeoutnumberTimeout in milliseconds. Default: 60000
Schema extracted: 12/29/2025, 3:52:29 AM
Firecrawl tools for Vercel AI SDK v5. Web scraping, search, crawling, and data extraction for AI applications.
npm install firecrawl-aisdk ai @ai-sdk/openai
Set environment variables:
FIRECRAWL_API_KEY=fc-your-key OPENAI_API_KEY=sk-your-key
import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { scrapeTool } from 'firecrawl-aisdk'; const { text } = await generateText({ model: openai('gpt-5-mini'), prompt: 'Scrape https://firecrawl.dev and summarize what it does', tools: { scrape: scrapeTool }, });
import { scrapeTool, // Scrape single URL searchTool, // Search the web mapTool, // Discover URLs on a site crawlTool, // Crawl multiple pages batchScrapeTool, // Scrape multiple URLs extractTool, // Extract structured data pollTool, // Poll async jobs statusTool, // Check job status cancelTool, // Cancel jobs } from 'firecrawl-aisdk';
Scrape
import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { scrapeTool } from 'firecrawl-aisdk'; const { text } = await generateText({ model: openai('gpt-5-mini'), prompt: 'Scrape https://firecrawl.dev and summarize what it does', tools: { scrape: scrapeTool }, }); console.log(text);
Search
import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { searchTool } from 'firecrawl-aisdk'; const { text } = await generateText({ model: openai('gpt-5-mini'), prompt: 'Search for Firecrawl and summarize what you find', tools: { search: searchTool }, }); console.log(text);
Map
import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { mapTool } from 'firecrawl-aisdk'; const { text } = await generateText({ model: openai('gpt-5-mini'), prompt: 'Map https://docs.firecrawl.dev and list the main sections', tools: { map: mapTool }, }); console.log(text);
Crawl (async - requires polling)
import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { crawlTool, pollTool } from 'firecrawl-aisdk'; const { text } = await generateText({ model: openai('gpt-5-mini'), prompt: 'Crawl https://docs.firecrawl.dev (limit 3 pages) and summarize', tools: { crawl: crawlTool, poll: pollTool }, }); console.log(text);
Batch (async - requires polling)
import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { batchScrapeTool, pollTool } from 'firecrawl-aisdk'; const { text } = await generateText({ model: openai('gpt-5-mini'), prompt: 'Scrape https://firecrawl.dev and https://docs.firecrawl.dev, then compare', tools: { batchScrape: batchScrapeTool, poll: pollTool }, }); console.log(text);
Extract (async - requires polling)
import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { extractTool, pollTool } from 'firecrawl-aisdk'; const { text } = await generateText({ model: openai('gpt-5-mini'), prompt: 'Extract the main features from https://firecrawl.dev', tools: { extract: extractTool, poll: pollTool }, }); console.log(text);
Search + Scrape
import { generateText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { searchTool, scrapeTool } from 'firecrawl-aisdk'; const { text } = await generateText({ model: openai('gpt-5-mini'), prompt: 'Search for Firecrawl, scrape the top result, and explain what it does', tools: { search: searchTool, scrape: scrapeTool }, }); console.log(text);
Stream
import { streamText } from 'ai'; import { openai } from '@ai-sdk/openai'; import { scrapeTool } from 'firecrawl-aisdk'; const result = streamText({ model: openai('gpt-5-mini'), prompt: 'Scrape https://firecrawl.dev and explain what it does', tools: { scrape: scrapeTool }, }); for await (const chunk of result.textStream) { process.stdout.write(chunk); }
Run tests:
pnpm test # Run all tests pnpm test:watch # Watch mode
MIT
Downloads/month
2,435
GitHub Stars
0
Quality Score