Pular para o conteúdo principal
Ferramentas Firecrawl para o Vercel AI SDK v5. Web scraping, busca, rastreamento e extração de dados para aplicações de IA.

Instalação

npm install firecrawl-aisdk ai @ai-sdk/openai
Defina as variáveis de ambiente:
FIRECRAWL_API_KEY=fc-your-key
OPENAI_API_KEY=sk-your-key
Estes exemplos usam OpenAI, mas as ferramentas do Firecrawl funcionam com qualquer provedor do Vercel AI SDK, incluindo Anthropic, Google, Mistral e mais. Confira a lista completa de provedores compatíveis.

Início rápido

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: 'Faça scraping de https://firecrawl.dev e resuma o que faz',
  tools: { scrape: scrapeTool },
});

Ferramentas disponíveis

import {
  scrapeTool,         // Extrai uma única URL
  searchTool,         // Busca na web
  mapTool,            // Descobre URLs em um site
  crawlTool,          // Rastreia múltiplas páginas
  batchScrapeTool,    // Extrai múltiplas URLs
  extractTool,        // Extrai dados estruturados
  pollTool,           // Consulta jobs assíncronos
  statusTool,         // Verifica status do job
  cancelTool,         // Cancela jobs
} from 'firecrawl-aisdk';

Exemplos

Scraping

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: 'Faça scraping de https://firecrawl.dev e resuma o que faz',
  tools: { scrape: scrapeTool },
});

console.log(text);
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: 'Busque informações sobre Firecrawl e resuma o que encontrar',
  tools: { search: searchTool },
});

console.log(text);

Mapeamento

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: 'Mapeie https://docs.firecrawl.dev e liste as seções principais',
  tools: { map: mapTool },
});

console.log(text);

Crawl

Operação assíncrona — inclua pollTool para verificar o status da tarefa.
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: 'Faça crawl de https://docs.firecrawl.dev (limite de 3 páginas) e resuma',
  tools: { crawl: crawlTool, poll: pollTool },
});

console.log(text);

Raspagem em lote

Operação assíncrona – inclua pollTool para verificar o status da tarefa.
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: 'Extraia dados de https://firecrawl.dev e https://docs.firecrawl.dev, depois compare',
  tools: { batchScrape: batchScrapeTool, poll: pollTool },
});

console.log(text);

Extract

Operação assíncrona - inclua pollTool para verificar o status da tarefa.
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: 'Extraia os principais recursos de https://firecrawl.dev',
  tools: { extract: extractTool, poll: pollTool },
});

console.log(text);

Busca + Raspagem

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: 'Pesquise por Firecrawl, faça scrape do primeiro resultado e explique o que ele faz',
  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: 'Extraia dados de https://firecrawl.dev e explique o que ele faz',
  tools: { scrape: scrapeTool },
});

for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}