---
title: "firecrawl/firecrawl: The API to search, scrape, and interact with the web at scale. 🔥"
source: "https://github.com/firecrawl/firecrawl"
author:
published:
created: 2026-07-13
description: "The API to search, scrape, and interact with the web at scale. 🔥 - firecrawl/firecrawl"
tags:
  - "clippings"
---
## 🔥 火行者

**用于大规模搜索、抓取和交互网络的 API。🔥** 用于查找资源、提取内容并将其转换为简洁的 Markdown 或结构化数据的网络上下文 API，方便您的代理使用。开源，并提供 [托管服务](https://firecrawl.dev/?ref=github) 。

*嘘！嘿，你，加入我们的观星队伍吧:)*

---

## 为什么选择 Firecrawl？

- **业界领先的可靠性** ：覆盖 96% 的网络，包括大量使用 JS 的页面——无需代理，只有干净的数据（ [参见基准测试](https://www.firecrawl.dev/blog/the-worlds-best-web-data-api-v25) ）
- **速度极快** ：P95 延迟仅为 3.4 秒，可处理数百万页，专为实时代理和动态应用程序而打造。
- **支持 LLM 的输出** ：简洁的 Markdown、结构化的 JSON、屏幕截图等等——花费更少的代币，构建更优质的 AI 应用
- **我们负责处理所有棘手的问题** ：代理轮换、编排、速率限制、JS 屏蔽内容等等——无需任何配置。
- **代理就绪** ：只需一条命令即可将 Firecrawl 连接到任何 AI 代理或 MCP 客户端
- **媒体解析** ：解析并提取网络托管的 PDF、DOCX 等文件中的内容
- **操作** ：点击、滚动、输入、等待、按下按钮，然后提取内容
- **开源** ：以透明协作的方式开发—— [加入我们的社区](https://github.com/firecrawl/firecrawl)

---

## 功能概述

**核心端点**

| 特征 | 描述 |
| --- | --- |
| [**搜索**](#search) | 搜索网络并从搜索结果中获取完整页面内容。 |
| [**刮**](#scrape) | 将任何 URL 转换为 Markdown、HTML、屏幕截图或结构化 JSON |
| [**相互影响**](#interact) | 抓取网页内容，然后使用 AI 提示或代码与其交互。 |

**更多的**

| 特征 | 描述 |
| --- | --- |
| [**代理人**](#agent) | 自动数据采集，只需描述您的需求即可 |
| [**爬行**](#crawl) | 通过一次请求抓取网站的所有 URL |
| [**地图**](#map) | 立即发现网站上的所有网址 |
| [**批量抓取**](#batch-scrape) | 异步抓取数千个URL |

---

## 快速入门

[请访问firecrawl.dev](https://firecrawl.dev/) 注册 以获取 API 密钥。然后尝试使用 [Playground](https://firecrawl.dev/playground) 进行测试。

### 搜索

搜索网络并从搜索结果中获取完整内容。

```
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

search_result = app.search("firecrawl", limit=5)
```
**Node.js / cURL / CLI**

**Node.js**

```
import { Firecrawl } from 'firecrawl';

const app = new Firecrawl({apiKey: "fc-YOUR_API_KEY"});

app.search("firecrawl", { limit: 5 })
```

**卷曲**

```
curl -X POST 'https://api.firecrawl.dev/v2/search' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
  "query": "firecrawl",
  "limit": 5
}'
```

**命令行界面**

```
firecrawl search "firecrawl" --limit 5
```

输出：

```
[
  {
    "url": "https://firecrawl.dev",
    "title": "Firecrawl",
    "markdown": "Turn websites into..."
  },
  {
    "url": "https://docs.firecrawl.dev",
    "title": "Firecrawl Docs",
    "markdown": "# Getting Started..."
  }
]
```

### 刮

从任何网站获取 LLM 就绪数据——markdown、JSON、屏幕截图等。

```
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

result = app.scrape('firecrawl.dev')
```
**Node.js / cURL / CLI**

**Node.js**

```
import { Firecrawl } from 'firecrawl';

const app = new Firecrawl({ apiKey: "fc-YOUR_API_KEY" });

app.scrape('firecrawl.dev')
```

**卷曲**

```
curl -X POST 'https://api.firecrawl.dev/v2/scrape' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
  "url": "firecrawl.dev"
}'
```

**命令行界面**

```
firecrawl scrape https://firecrawl.dev
firecrawl https://firecrawl.dev --only-main-content
```

输出：

```
# Firecrawl

Firecrawl helps AI systems search, scrape, and interact with the web.

## Features
- Search: Find information across the web
- Scrape: Clean data from any page
- Interact: Click, navigate, and operate pages
- Agent: Autonomous data gathering
```

### 相互影响

抓取网页内容，然后使用人工智能提示或代码与其进行交互。

```
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

result = app.scrape("https://amazon.com")
scrape_id = result.metadata.scrape_id

app.interact(scrape_id, prompt="Search for 'mechanical keyboard'")
app.interact(scrape_id, prompt="Click the first result")
```
**Node.js / cURL / CLI**

**Node.js**

```
import { Firecrawl } from 'firecrawl';

const app = new Firecrawl({apiKey: "fc-YOUR_API_KEY"});

const result = await app.scrape("https://amazon.com");

await app.interact(result.metadata.scrapeId, {
  prompt: "Search for 'mechanical keyboard'"
});
await app.interact(result.metadata.scrapeId, {
  prompt: "Click the first result"
});
```

**卷曲**

```
# 1. Scrape the page
curl -X POST 'https://api.firecrawl.dev/v2/scrape' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"url": "https://amazon.com"}'

# 2. Interact with the page (use scrapeId from step 1)
curl -X POST 'https://api.firecrawl.dev/v2/scrape/SCRAPE_ID/interact' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"prompt": "Search for mechanical keyboard"}'
```

**命令行界面**

```
firecrawl scrape https://amazon.com
firecrawl interact exec --prompt "Search for 'mechanical keyboard'"
firecrawl interact exec --prompt "Click the first result"
```

输出：

```
{
  "success": true,
  "output": "Keyboard available at $100",
  "liveViewUrl": "https://liveview.firecrawl.dev/..."
}
```

---

## 赋能你的经纪人

几分钟内即可将 Firecrawl 连接到任何 AI 代理或 MCP 客户端。

### 技能

只需一条命令，即可让您的代理轻松访问实时网络数据。

```
npx -y firecrawl-cli@latest init --all --browser
```

安装后请重启代理。支持 [Claude Code](https://claude.ai/code) 、 [Antigravity](https://antigravity.google/) 、 [OpenCode](https://opencode.ai/) 等多种框架。

### MCP

只需几秒钟，即可将任何兼容 MCP 的客户端连接到互联网。

```
{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY"
      }
    }
  }
}
```

### 代理入职

您是人工智能代理吗？获取此技能以注册您的用户、获取 API 密钥并开始使用 Firecrawl 进行构建。

```
curl -s https://firecrawl.dev/agent-onboarding/SKILL.md
```

请参阅 [Skill + CLI 文档](https://docs.firecrawl.dev/sdks/cli) 以了解所有可用命令。对于 MCP，请参阅 [firecrawl-mcp-server](https://github.com/firecrawl/firecrawl-mcp-server) 。

---

## 更多端点

### 代理人

**从网络获取数据的最简便方法。** 只需描述您的需求，我们的人工智能代理即可搜索、浏览并检索所需内容。无需提供网址。

Agent 是我们端点的升级版 `/extract` ：速度更快、更可靠，而且无需您事先知道 URL。

```
curl -X POST 'https://api.firecrawl.dev/v2/agent' \
  -H 'Authorization: Bearer fc-YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "Find the pricing plans for Notion"
  }'
```

回复：

```
{
  "success": true,
  "data": {
    "result": "Notion offers the following pricing plans:\n\n1. Free - $0/month...\n2. Plus - $10/seat/month...\n3. Business - $18/seat/month...",
    "sources": ["https://www.notion.so/pricing"]
  }
}
```

#### 具有结构化输出的代理

使用模式获取结构化数据：

```
from firecrawl import Firecrawl
from pydantic import BaseModel, Field
from typing import List, Optional

app = Firecrawl(api_key="fc-YOUR_API_KEY")

class Founder(BaseModel):
    name: str = Field(description="Full name of the founder")
    role: Optional[str] = Field(None, description="Role or position")

class FoundersSchema(BaseModel):
    founders: List[Founder] = Field(description="List of founders")

result = app.agent(
    prompt="Find the founders of Firecrawl",
    schema=FoundersSchema
)

print(result.data)
```
```
{
  "founders": [
    {"name": "Eric Ciarla", "role": "Co-founder"},
    {"name": "Nicolas Camara", "role": "Co-founder"},
    {"name": "Caleb Peffer", "role": "Co-founder"}
  ]
}
```

#### 代理（带 URL，可选）

将代理引导至特定页面：

```
result = app.agent(
    urls=["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
    prompt="Compare the features and pricing information"
)
```

#### 模型选择

根据您的需求，从以下两种型号中选择：

| 模型 | 成本 | 最适合 |
| --- | --- | --- |
| `spark-1-mini` （默认） | 便宜 60%。 | 大多数任务 |
| `spark-1-pro` | 标准 | 复杂的研究，关键的数据收集 |

```
result = app.agent(
    prompt="Compare enterprise features across Firecrawl, Apify, and ScrapingBee",
    model="spark-1-pro"
)
```

**何时使用专业版：**

- 比较多个网站的数据
- 从具有复杂导航或身份验证的网站中提取信息
- 研究任务中，智能体需要探索多条路径
- 准确性至关重要的关键数据

[在我们的代理文档](https://docs.firecrawl.dev/features/agent) 中了解更多关于 Spark 模型的信息 。

### 爬行

抓取整个网站并获取所有页面的内容。

```
curl -X POST 'https://api.firecrawl.dev/v2/crawl' \
  -H 'Authorization: Bearer fc-YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://docs.firecrawl.dev",
    "limit": 100,
    "scrapeOptions": {
      "formats": ["markdown"]
    }
  }'
```

返回一个作业 ID：

```
{
  "success": true,
  "id": "123-456-789",
  "url": "https://api.firecrawl.dev/v2/crawl/123-456-789"
}
```

#### 检查爬取状态

```
curl -X GET 'https://api.firecrawl.dev/v2/crawl/123-456-789' \
  -H 'Authorization: Bearer fc-YOUR_API_KEY'
```
```
{
  "status": "completed",
  "total": 50,
  "completed": 50,
  "creditsUsed": 50,
  "data": [
    {
      "markdown": "# Page Title\n\nContent...",
      "metadata": {"title": "Page Title", "sourceURL": "https://..."}
    }
  ]
}
```

**注意：** SDK会自动处理轮询 [，](#sdks) 以提供更好的开发者体验。

### 地图

立即发现网站上的所有网址。

```
curl -X POST 'https://api.firecrawl.dev/v2/map' \
  -H 'Authorization: Bearer fc-YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://firecrawl.dev"}'
```

回复：

```
{
  "success": true,
  "links": [
    {"url": "https://firecrawl.dev", "title": "Firecrawl", "description": "Turn websites into LLM-ready data"},
    {"url": "https://firecrawl.dev/pricing", "title": "Pricing", "description": "Firecrawl pricing plans"},
    {"url": "https://firecrawl.dev/blog", "title": "Blog", "description": "Firecrawl blog"}
  ]
}
```

#### 带搜索功能的地图

查找网站内的特定URL：

```
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

result = app.map("https://firecrawl.dev", search="pricing")
# Returns URLs ordered by relevance to "pricing"
```

### 批量抓取

一次抓取多个URL：

```
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

job = app.batch_scrape([
    "https://firecrawl.dev",
    "https://docs.firecrawl.dev",
    "https://firecrawl.dev/pricing"
], formats=["markdown"])

for doc in job.data:
    print(doc.metadata.source_url)
```

---

## SDK

我们的 SDK 提供了一种便捷的方式来使用 Firecrawl 的所有功能，并自动处理异步操作的轮询。

### Python

安装 SDK：

```
pip install firecrawl-py
```
```
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

# Scrape a single URL
doc = app.scrape("https://firecrawl.dev", formats=["markdown"])
print(doc.markdown)

# Use the Agent for autonomous data gathering
result = app.agent(prompt="Find the founders of Stripe")
print(result.data)

# Crawl a website (automatically waits for completion)
docs = app.crawl("https://docs.firecrawl.dev", limit=50)
for doc in docs.data:
    print(doc.metadata.source_url, doc.markdown[:100])

# Search the web
results = app.search("best AI data tools 2024", limit=10)
print(results)
```

### Node.js

安装 SDK：

```
npm install firecrawl
```
```
import { Firecrawl } from 'firecrawl';

const app = new Firecrawl({ apiKey: 'fc-YOUR_API_KEY' });

// Scrape a single URL
const doc = await app.scrape('https://firecrawl.dev', { formats: ['markdown'] });
console.log(doc.markdown);

// Use the Agent for autonomous data gathering
const result = await app.agent({ prompt: 'Find the founders of Stripe' });
console.log(result.data);

// Crawl a website (automatically waits for completion)
const docs = await app.crawl('https://docs.firecrawl.dev', { limit: 50 });
docs.data.forEach(doc => {
    console.log(doc.metadata.sourceURL, doc.markdown.substring(0, 100));
});

// Search the web
const results = await app.search('best AI data tools 2024', { limit: 10 });
results.data.web.forEach(result => {
    console.log(\`${result.title}: ${result.url}\`);
});
```

### Java

添加依赖项（ [Gradle/Maven](https://docs.firecrawl.dev/sdks/java#installation) ）：

```
repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'com.github.firecrawl:firecrawl-java-sdk:2.0'
}
```
```
import dev.firecrawl.client.FirecrawlClient;
import dev.firecrawl.model.*;

FirecrawlClient client = new FirecrawlClient(
    System.getenv("FIRECRAWL_API_KEY"), null, null
);

// Scrape a single URL
ScrapeParams scrapeParams = new ScrapeParams();
scrapeParams.setFormats(new String[]{"markdown"});
FirecrawlDocument doc = client.scrapeURL("https://firecrawl.dev", scrapeParams);
System.out.println(doc.getMarkdown());

// Use the Agent for autonomous data gathering
AgentParams agentParams = new AgentParams("Find the founders of Stripe");
AgentResponse start = client.createAgent(agentParams);
AgentStatusResponse result = client.getAgentStatus(start.getId());
System.out.println(result.getData());

// Crawl a website (polls until completion)
CrawlParams crawlParams = new CrawlParams();
crawlParams.setLimit(50);
CrawlStatusResponse job = client.crawlURL("https://docs.firecrawl.dev", crawlParams, null, 10);
for (FirecrawlDocument page : job.getData()) {
    System.out.println(page.getMetadata().get("sourceURL"));
}

// Search the web
SearchParams searchParams = new SearchParams("best AI data tools 2024");
searchParams.setLimit(10);
SearchResponse results = client.search(searchParams);
for (SearchResult r : results.getResults()) {
    System.out.println(r.getTitle() + ": " + r.getUrl());
}
```

### 灵药

添加依赖项：

```
def deps do
  [
    {:firecrawl, "~> 1.0"}
  ]
end
```
```
# Scrape a URL
{:ok, response} = Firecrawl.scrape_and_extract_from_url(
  url: "https://firecrawl.dev",
  formats: ["markdown"]
)

# Crawl a website
{:ok, response} = Firecrawl.crawl_urls(
  url: "https://docs.firecrawl.dev",
  limit: 50
)

# Search the web
{:ok, response} = Firecrawl.search_and_scrape(
  query: "best AI data tools 2024",
  limit: 10
)

# Map URLs
{:ok, response} = Firecrawl.map_urls(url: "https://example.com")
```

### 锈

添加依赖项：

```
[dependencies]
firecrawl = "2"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
```
```
use firecrawl::{Client, ScrapeOptions, Format, CrawlOptions};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new("fc-YOUR_API_KEY")?;

    // Scrape a URL
    let document = client.scrape("https://firecrawl.dev", None).await?;
    println!("{:?}", document.markdown);

    // Crawl a website
    let options = CrawlOptions {
        limit: Some(50),
        ..Default::default()
    };
    let result = client.crawl("https://docs.firecrawl.dev", options).await?;
    println!("Crawled {} pages", result.data.len());

    // Search the web
    let response = client.search("best web scraping tools 2024", None).await?;
    println!("{:?}", response.data);

    Ok(())
}
```

### 社区 SDK

- [Go SDK](https://github.com/firecrawl/firecrawl/tree/main/apps/go-sdk)

---

## 集成

**代理和人工智能工具**

**平台**

[查看所有集成 →](https://www.firecrawl.dev/integrations)

**找不到您最喜欢的工具？** [请提交问题报告](https://github.com/mendableai/firecrawl/issues) 告诉我们！

---

## 资源

- [文档](https://docs.firecrawl.dev/)
- [API 参考](https://docs.firecrawl.dev/api-reference/introduction)
- [操场](https://firecrawl.dev/playground)
- [更新日志](https://firecrawl.dev/changelog)

---

## 开源与云

[Firecrawl](https://firecrawl.dev/) 采用 AGPL-3.0 许可协议开源。firecrawl.dev 上的云版本 包含以下附加功能：

[![开源与云](https://raw.githubusercontent.com/firecrawl/firecrawl/main/img/open-source-cloud.png)](https://raw.githubusercontent.com/firecrawl/firecrawl/main/img/open-source-cloud.png)

要在本地运行，请参阅 [贡献指南](https://github.com/firecrawl/firecrawl/blob/main/CONTRIBUTING.md) 。要自行托管，请参阅 [自行托管指南](https://docs.firecrawl.dev/contributing/self-host) 。

---

## 贡献

我们欢迎大家贡献代码！请 在提交 pull request 前阅读我们的 [贡献指南。](https://github.com/firecrawl/firecrawl/blob/main/CONTRIBUTING.md)

### 贡献者

[![贡献者](https://camo.githubusercontent.com/46b1f8692c44018468a7fd8455f96b403a79d032e3e797488776ac31636386dc/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d66697265637261776c2f66697265637261776c)](https://github.com/firecrawl/firecrawl/graphs/contributors)

---

## 执照

本项目主要采用 GNU Affero 通用公共许可证 v3.0 (AGPL-3.0) 授权。SDK 和部分 UI 组件采用 MIT 许可证授权。详情请参阅特定目录中的 LICENSE 文件。

---

**用户在使用网页抓取工具时，有责任遵守网站的政策。** 建议用户遵守适用的隐私政策和使用条款。Firecrawl 默认遵循 robots.txt 指令。使用 Firecrawl 即表示您同意遵守这些条款。

[↑ 返回顶部 ↑](#readme-top)