Appearance
API Endpoints
Updated Feb 2026Complete reference for all Firecrawl v2 API endpoints.
Base URL
https://api.firecrawl.dev/v2Authentication
All requests require:
Authorization: Bearer fc-YOUR-API-KEY
Content-Type: application/jsonScrape Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v2/scrape | Scrape single URL |
| POST | /v2/batch/scrape | Batch scrape multiple URLs |
| GET | /v2/batch/scrape/{id} | Get batch scrape status |
| DELETE | /v2/batch/scrape/{id} | Cancel batch scrape |
| GET | /v2/batch/scrape/{id}/errors | Get batch scrape errors |
bash
curl -X POST 'https://api.firecrawl.dev/v2/scrape' \
-H 'Authorization: Bearer fc-YOUR-API-KEY' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://example.com",
"formats": ["markdown", "html"],
"timeout": 120000
}'Search Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v2/search | Web search with optional scraping |
bash
curl -X POST 'https://api.firecrawl.dev/v2/search' \
-H 'Authorization: Bearer fc-YOUR-API-KEY' \
-d '{
"query": "firecrawl",
"limit": 10,
"sources": ["web", "news"]
}'Map Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v2/map | Discover all URLs on a website |
bash
curl -X POST 'https://api.firecrawl.dev/v2/map' \
-H 'Authorization: Bearer fc-YOUR-API-KEY' \
-d '{"url": "https://example.com", "limit": 100}'Crawl Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v2/crawl | Start crawl job |
| GET | /v2/crawl/{id} | Get crawl status |
| POST | /v2/crawl/params-preview | Preview crawl params |
| DELETE | /v2/crawl/{id} | Cancel crawl |
| GET | /v2/crawl/{id}/errors | Get pages that failed |
| GET | /v2/crawl/active | Get active crawls |
bash
curl -X POST 'https://api.firecrawl.dev/v2/crawl' \
-H 'Authorization: Bearer fc-YOUR-API-KEY' \
-d '{"url": "https://example.com", "limit": 100}'Browser Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v2/browser | Create browser session |
| POST | /v2/browser/{id}/execute | Execute code in session |
| GET | /v2/browser | List browser sessions |
| DELETE | /v2/browser/{id} | Delete browser session |
bash
# Create session
curl -X POST 'https://api.firecrawl.dev/v2/browser' \
-H 'Authorization: Bearer fc-YOUR-API-KEY' \
-d '{"ttl": 300, "activityTtl": 120}'
# Execute code
curl -X POST 'https://api.firecrawl.dev/v2/browser/{id}/execute' \
-H 'Authorization: Bearer fc-YOUR-API-KEY' \
-d '{
"code": "agent-browser open https://example.com",
"language": "bash"
}'Parse Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v2/parse | Parse local files (PDF, DOCX, HTML) |
bash
curl -X POST 'https://api.firecrawl.dev/v2/parse' \
-H 'Authorization: Bearer fc-YOUR-API-KEY' \
-F 'file=@/path/to/document.pdf' \
-F 'options={"parsers":[{"type":"pdf","mode":"auto"}]}'Agent Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v2/agent | Start agent job |
| GET | /v2/agent/{id} | Get agent status |
| DELETE | /v2/agent/{id} | Cancel agent job |
bash
curl -X POST 'https://api.firecrawl.dev/v2/agent' \
-H 'Authorization: Bearer fc-YOUR-API-KEY' \
-d '{
"prompt": "Find the pricing plans for Notion",
"model": "spark-1-mini",
"maxCredits": 100
}'Extract Endpoints (Legacy)
| Method | Path | Description |
|---|---|---|
| POST | /v2/extract | Start extraction |
| GET | /v2/extract/{id} | Get extract status |
INFO
Extract is being superseded by Agent. Use Agent for new work.
Account Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /v2/account/credit-usage | Current credit usage |
| GET | /v2/account/credit-usage/historical | Historical credit usage |
| GET | /v2/account/token-usage | Token usage |
| GET | /v2/account/token-usage/historical | Historical token usage |
| GET | /v2/account/queue-status | Queue status |
Common Parameters
| Parameter | Type | Description |
|---|---|---|
url | string | Target URL to scrape/crawl/map |
query | string | Search query (search endpoint) |
formats | array | Output formats (markdown, html, json, etc.) |
limit | number | Max results/pages |
timeout | number | Timeout in milliseconds |
proxy | string | Proxy type: basic, enhanced, auto |
maxAge | number | Cache validity in milliseconds |
location | object | {country, languages} for geo-targeting |
Response Format
Success:
json
{
"success": true,
"data": {
"markdown": "...",
"metadata": {}
}
}Error:
json
{
"success": false,
"error": "Description of error"
}Status Codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Invalid request parameters |
| 401 | Missing or invalid API key |
| 402 | Payment required (insufficient credits) |
| 404 | Resource not found |
| 409 | Conflict (e.g., browser profile locked) |
| 429 | Rate limited |
| 5xx | Server error |