# Firecrawl

Gateway provider `firecrawl` · call `https://fetchapi.co/api/gw/firecrawl/<path>` with header `x-api-key` (get a key at https://fetchapi.co/keys) · MCP: tools `search_endpoints`, `get_endpoint`, `call_endpoint` at https://fetchapi.co/api/mcp · listing: https://docs.firecrawl.dev/

6 working endpoints, each tested live through this gateway. Endpoints that returned no data in our latest test, write actions and endpoints that need the end user's own login are not listed.

## `firecrawl.crawl` — Start crawling a website (Firecrawl): returns a job id

`POST /v1/crawl` · ✓ working (tested 2026-10-08) · sampled 2026-10-08, 118 ms

Starts a website crawl job and returns its ID. One call queues up to 10 pages (or a custom limit) for scraping. Use the returned `id` with GET /v1/crawl/{id} to check status and retrieve the pages.

| param | required | example / default |
|---|---|---|
| `url` | yes |  |
| `limit` | no | 10 |
| `includePaths` | no |  |
| `scrapeOptions` | no |  |

Fields: `id` Crawl job ID; use in GET /v1/crawl/{id} to fetch results; `url` API endpoint to poll for crawl status and pages; `success` Whether the crawl job was queued

```bash
curl -X POST "https://fetchapi.co/api/gw/firecrawl/v1/crawl" \
  -H "x-api-key: $FETCHAPI_KEY" -H "content-type: application/json" \
  -d '{}'
```

Real answer (trimmed):

```json
{
 "id": "01a11d94-7ce6-7292-9d28-aae056710681",
 "url": "https://api.firecrawl.dev/v1/crawl/01a11d94-7ce6-7292-9d28-aae056710681",
 "success": true
}
```

## `firecrawl.crawl_status` — Get a Firecrawl crawl's status and pages

`GET /v1/crawl/{id}` · ✓ working (tested 2026-10-08) · sampled 2026-10-08, None ms

Polls a crawl job's progress and returns pages scraped so far as Markdown with metadata. One item in the answer is one page (URL, title, rendered Markdown, status code, language, etc.). The sample held 2 pages; get the next batch by following the `next` URL or incrementing `skip`.

| param | required | example / default |
|---|---|---|
| `id` | yes | 01a11d94-7ce6-7292-9d28-aae056710681 |

Fields: `data[].markdown` Page content as Markdown; `data[].metadata.url` Page URL; `data[].metadata.title` Page title; `data[].metadata.statusCode` HTTP status code; `data[].metadata.language` Detected page language; `data[].metadata.cachedAt` When page was scraped; `status` 'scraping' or 'completed'; `total` Total pages found; `completed` Pages scraped so far; `next` URL to fetch next batch (pagination)

```bash
curl "https://fetchapi.co/api/gw/firecrawl/v1/crawl/01a11d94-7ce6-7292-9d28-aae056710681" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": [
  {
   "markdown": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.\n\nهذا النطاق مُخصص للاستخدام في أمثلة التوثيق دون الحاجة إلى إذن. هذه ليست خدمة، يُرجى تجنب الاعتماد عليها لأغراض الاختبار والمراقبة.\n\n该域名仅用于文档示例，无需获得许可。这并非一项服务，请勿将其用于测试和监控目的。\n\nL’usage de ce domaine est réservé à des exemples de documentation, sans autorisation préalable. Il ne s’agit pas d’un service ; son utilisation à des fins de test ou de surveillance est à éviter.\n\nДанный домен предназначен для использования в примерах документации без необходимости получения предварительного разрешения. Это не сервис; не рекомендуется его использование для тестирования и мониторинга.\n\nEste dominio está destinado al uso en ejemplos de documentació…",
   "metadata": {
    "url": "https://example.com/",
    "title": "Example Domain",
    "favicon": "data:,",
    "cachedAt": "2026-10-08T22:10:17.898Z",
    "language": "en",
    "scrapeId": "01a11d94-7df6-733f-bd30-80d97caef9dd",
    "viewport": "width=device-width,initial-scale=1",
    "proxyUsed": "basic",
    "sourceURL": "https://example.com",
    "cacheState": "hit",
    "statusCode": 200,
    "contentType": "text/html; charset=utf-8",
    "creditsUsed": 1
   }
  },
  {
   "markdown": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.\
…
```

## `firecrawl.map` — List every URL on a website (Firecrawl map)

`POST /v1/map` · ✓ working (tested 2026-10-08) · sampled 2026-10-08, 259 ms

Lists every URL on a website (from sitemap and discovered links) without reading the pages. One call returns an array of URLs. No pagination.

| param | required | example / default |
|---|---|---|
| `url` | yes |  |
| `search` | no |  |
| `limit` | no |  |

Fields: `links[]` URLs found on the site; `success` Whether the map succeeded

```bash
curl -X POST "https://fetchapi.co/api/gw/firecrawl/v1/map" \
  -H "x-api-key: $FETCHAPI_KEY" -H "content-type: application/json" \
  -d '{}'
```

Real answer (trimmed):

```json
{
 "links": [
  "https://example.com",
  "https://example.com/#organization",
  "https://example.com/#intro"
 ],
 "success": true
}
```

## `firecrawl.scrape` — Read one web page as clean Markdown (Firecrawl)

`POST /v1/scrape` · ✓ working (tested 2026-10-08) · sampled 2026-10-08, 97 ms

Reads one web page in a browser and returns it as Markdown (or HTML, links, screenshot, or custom JSON), along with title, status code, and metadata. One call = one page.

| param | required | example / default |
|---|---|---|
| `url` | yes |  |
| `formats` | no | ['markdown'] |
| `onlyMainContent` | no | True |

Fields: `data.markdown` Page content as Markdown; `data.metadata.url` Page URL; `data.metadata.title` Page title; `data.metadata.statusCode` HTTP status code; `data.metadata.language` Detected page language; `data.metadata.cachedAt` When page was scraped; `data.metadata.creditsUsed` Credits consumed

```bash
curl -X POST "https://fetchapi.co/api/gw/firecrawl/v1/scrape" \
  -H "x-api-key: $FETCHAPI_KEY" -H "content-type: application/json" \
  -d '{}'
```

Real answer (trimmed):

```json
{
 "data": {
  "markdown": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.\n\nهذا النطاق مُخصص للاستخدام في أمثلة التوثيق دون الحاجة إلى إذن. هذه ليست خدمة، يُرجى تجنب الاعتماد عليها لأغراض الاختبار والمراقبة.\n\n该域名仅用于文档示例，无需获得许可。这并非一项服务，请勿将其用于测试和监控目的。\n\nL’usage de ce domaine est réservé à des exemples de documentation, sans autorisation préalable. Il ne s’agit pas d’un service ; son utilisation à des fins de test ou de surveillance est à éviter.\n\nДанный домен предназначен для использования в примерах документации без необходимости получения предварительного разрешения. Это не сервис; не рекомендуется его использование для тестирования и мониторинга.\n\nEste dominio está destinado al uso en ejemplos de documentació…",
  "metadata": {
   "url": "https://example.com/",
   "title": "Example Domain",
   "favicon": "data:,",
   "cachedAt": "2026-10-08T22:10:17.898Z",
   "language": "en",
   "scrapeId": "01a11d94-77df-735c-b290-d6ae1fce5a7b",
   "viewport": "width=device-width,initial-scale=1",
   "proxyUsed": "basic",
   "sourceURL": "https://example.com",
   "cacheState": "hit",
   "statusCode": 200,
   "contentType": "text/html; charset=utf-8",
   "creditsUsed": 1,
   "concurrencyLimited": false
  }
 },
 "success": true
}
```

## `firecrawl.search` — Search the web and get results as structured data (Firecrawl)

`POST /v1/search` · ✓ working (tested 2026-10-08) · sampled 2026-10-08, 728 ms

Searches the web and returns results (title, URL, description). One item in the answer is one search result. The sample held 3 results; optionally scrape each result page as Markdown for an extra credit per result.

| param | required | example / default |
|---|---|---|
| `query` | yes |  |
| `limit` | no | 5 |
| `scrapeOptions` | no |  |

Fields: `data[].url` Result URL; `data[].title` Result title; `data[].description` Result snippet; `id` Search job ID

```bash
curl -X POST "https://fetchapi.co/api/gw/firecrawl/v1/search" \
  -H "x-api-key: $FETCHAPI_KEY" -H "content-type: application/json" \
  -d '{}'
```

Real answer (trimmed):

```json
{
 "id": "01a11d94-79d3-721a-99b9-6925dbe89ae0",
 "data": [
  {
   "url": "https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch",
   "title": "Using the Fetch API - MDN Web Docs",
   "description": "The Fetch API provides a JavaScript interface for making HTTP requests and processing the responses. Fetch is the modern replacement for ..."
  },
  {
   "url": "https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API",
   "title": "Fetch API - MDN Web Docs",
   "description": "The Fetch API provides an interface for fetching resources (including across the network). It is a more powerful and flexible replacement ..."
  },
  {
   "url": "https://www.w3schools.com/js/js_api_fetch.asp",
   "title": "JavaScript Fetch API - W3Schools",
   "description": "The Fetch API interface lets you download (fetch) data from a web server. await fetch() is the modern API for fetching data from an HTTP server."
  }
 ],
 "success": true
}
```

## `firecrawl.team_credit_usage` — Check the Firecrawl credits left

`GET /v1/team/credit-usage` · ✓ working (tested 2026-10-08) · sampled 2026-10-08, 35 ms

Returns the account's credit balance and billing period. One call shows remaining credits, plan credits, and when the billing period ends.

Fields: `data.remaining_credits` Credits left in billing period; `data.plan_credits` Total credits in plan; `data.billing_period_start` Billing period start date; `data.billing_period_end` Billing period end date

```bash
curl "https://fetchapi.co/api/gw/firecrawl/v1/team/credit-usage" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": {
  "plan_credits": 1000,
  "remaining_credits": 1016,
  "billing_period_end": "2026-11-03T17:48:03.030Z",
  "billing_period_start": "2026-10-03T17:48:03.030Z"
 },
 "success": true
}
```
