Vercel Marketplace
从 Vercel Marketplace 安装 Firecrawl,将其关联到项目,并在你的 Vercel 应用中使用注入的 FIRECRAWL_API_KEY。
Firecrawl 提供原生的 Vercel Marketplace 集成。安装后,它会为你的 Vercel 项目配置 Firecrawl,并自动将 FIRECRAWL_API_KEY 添加到项目环境变量中。
如果你希望通过 Vercel 完成 Firecrawl 的计费、API 密钥设置和项目配置,请参考本指南。
当你通过 Vercel Marketplace 安装 Firecrawl 时,Vercel 会将 Firecrawl 连接到所选项目,并将 API 密钥作为环境变量提供给你。
- 通过 Marketplace 流程创建 Firecrawl 账户并提供 API 密钥
- 将
FIRECRAWL_API_KEY添加到你的 Vercel 项目环境变量中 - 将 Firecrawl 的计费保留在你的 Vercel 账单中
- 集成连接后,你可以直接从 Vercel 打开 Firecrawl
如果你已经有 Firecrawl API 密钥,并且想手动配置 Vercel,请改用 Vercel Functions 快速入门。
- 打开 Vercel Marketplace 上的 Firecrawl 页面。
- 点击 连接账户。
- 选择你想使用的 Firecrawl 套餐。
- 选择要接收该环境变量的 Vercel 项目。
- 完成安装流程。
安装完成后,重新部署你的项目,以便 Vercel Functions 和框架的服务器端代码能够读取新的环境变量。
在你的 Vercel 项目中安装 Firecrawl Node SDK:
npm install firecrawl无需将 API 密钥粘贴到代码中。请在服务端读取 process.env.FIRECRAWL_API_KEY。
在 app/api/scrape/route.ts 中创建一个路由处理程序:
import { NextResponse } from "next/server";
import { Firecrawl } from "firecrawl";
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, {
formats: ["markdown"],
});
return NextResponse.json(result);
}部署完成后,测试该路由:
curl -X POST https://your-project.vercel.app/api/scrape \
-H "Content-Type: application/json" \
-d '{"url": "https://www.firecrawl.dev"}'当你的应用需要最新的网页搜索结果以及页面内容时,使用 search:
import { NextResponse } from "next/server";
import { Firecrawl } from "firecrawl";
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,
scrapeOptions: {
formats: ["markdown"],
},
});
return NextResponse.json(results);
}当应用需要在提取内容前先点击、滚动或填写表单时,请使用 interact。
import { NextResponse } from "next/server";
import { Firecrawl } from "firecrawl";
const firecrawl = new Firecrawl({
apiKey: process.env.FIRECRAWL_API_KEY,
});
export async function POST() {
const result = await firecrawl.scrape("https://news.ycombinator.com", {
formats: ["markdown"],
});
const scrapeId = result.metadata?.scrapeId;
if (!scrapeId) {
return NextResponse.json(
{ error: "No interactive scrape session was created" },
{ status: 500 }
);
}
const response = await firecrawl.interact(scrapeId, {
prompt: "Open the first story and summarize the page.",
});
await firecrawl.stopInteraction(scrapeId);
return NextResponse.json({ output: response.output });
}较长时间的交互可能会超过较短的无服务器超时时限。对于在生产环境中可能耗时更久的工作流,请将这类工作放到后台任务中运行,或使用 Firecrawl 的异步 API 并配合 Webhook。
如果你在使用 Vercel AI SDK 构建代理,请安装 Firecrawl AI SDK 工具:
npm install firecrawl-aisdk ai然后将 Firecrawl 工具传给你的模型。通过 Marketplace 安装的 FIRECRAWL_API_KEY 会从环境变量中读取。
以下示例使用 Vercel AI Gateway 的模型字符串格式。请分别配置你的 AI SDK 模型提供商或 AI Gateway 凭证。
import { generateText, stepCountIs } from "ai";
import { FirecrawlTools } from "firecrawl-aisdk";
const { text } = await generateText({
model: "anthropic/claude-sonnet-4-5",
tools: FirecrawlTools(),
stopWhen: stepCountIs(20),
prompt: "Search for recent Vercel AI SDK examples, scrape the best sources, and summarize them.",
});
console.log(text);