Skip to content

Firecrawl

Firecrawl turns the web into LLM-ready data — its search endpoint returns ranked results with a description and, when asked, the page as markdown. Routeplane speaks it natively as a backend for the built-in web search tool.

Create an API key in the Firecrawl dashboard and export it:

Terminal window
export FIRECRAWL_API_KEY=...

Declare a firecrawl backend under server_tools.web_search. The key resolves from an explicit api_key (which supports ${VAR}) or, when omitted, the conventional FIRECRAWL_API_KEY:

routeplane.yaml
server_tools:
web_search:
backends:
- kind: firecrawl # key from api_key or FIRECRAWL_API_KEY
**Preference and failover.** `backends` is an ordered list — the first whose key resolves is the default, and a failing backend falls over to the next. List Firecrawl alongside [Exa](/integrations/exa), [Parallel](/integrations/parallel), or [Tavily](/integrations/tavily) to chain them.

A request turns the tool on by declaring it; pin Firecrawl with args.backend:

{ "tools": [ { "type": "routeplane:web_search", "args": { "backend": "firecrawl" } } ] }

The model then calls web_search with a query; Routeplane runs it against Firecrawl and feeds the results back inside the tool loop. Firecrawl fills title, snippet (description), and — uniquely among the search backends — content (markdown) on each result.