> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.auxiliar.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.auxiliar.ai/_mcp/server.

# Firecrawl

Proxies the entire [Firecrawl](https://firecrawl.dev) REST API. Like ElevenLabs, Firecrawl is a whole API surface, so the gateway mounts a **wildcard** and forwards the path after `/firecrawl/` verbatim:

```
GET|POST|DELETE /firecrawl/<api path>   → https://api.firecrawl.dev/<api path>
```

Because the path passes through unchanged, **new Firecrawl endpoints work without any gateway change**. The methods mirror what Firecrawl documents — `POST` for the action endpoints, `GET` for status and usage, and `DELETE` to cancel a crawl. No documented endpoint uses `PUT` or `PATCH`.

## Common paths

| Path                              | Purpose                 |
| --------------------------------- | ----------------------- |
| `POST /firecrawl/v2/scrape`       | Scrape a single URL     |
| `POST /firecrawl/v2/crawl`        | Start a crawl           |
| `GET /firecrawl/v2/crawl/{id}`    | Crawl status            |
| `DELETE /firecrawl/v2/crawl/{id}` | Cancel a crawl          |
| `POST /firecrawl/v2/map`          | Map a site's URLs       |
| `POST /firecrawl/v2/search`       | Search the web          |
| `POST /firecrawl/v2/extract`      | Extract structured data |
| `POST /firecrawl/v2/batch/scrape` | Batch scrape            |

## What the gateway injects and strips

Firecrawl authenticates with the `Authorization: Bearer` header — the **same** header you use for your gateway token. So the gateway **overwrites** it with the injected Firecrawl key, rather than stripping it:

* **The `Authorization` header is overwritten** with the secret Firecrawl key. Your gateway token is consumed by the gateway and never reaches Firecrawl.
* Firecrawl has no query-param spelling of the key, so nothing is dropped from the query string.

## Responses

Responses are **JSON throughout** — screenshots, audio, and video come back as URLs or base64 strings *inside* the JSON, so there is no raw binary body.

## Examples

```bash
curl -X POST "$GATEWAY/firecrawl/v2/scrape" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "formats": ["markdown"]}'
```

```bash
curl -X POST "$GATEWAY/firecrawl/v2/crawl" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "limit": 50}'
```

```bash
curl "$GATEWAY/firecrawl/v2/crawl/{id}" \
  -H "Authorization: Bearer $TOKEN"
```

The response is Firecrawl's JSON, returned unchanged. For request and response fields, follow [Firecrawl's API reference](https://docs.firecrawl.dev/api-reference) — the gateway does not alter them.