Skip to content

Exa

Exa is a neural, embeddings-based search API — it finds pages by meaning rather than keywords and returns ranked results with highlights and relevance scores. Routeplane speaks it natively as a backend for the built-in web search tool, so bringing it in is one line plus a key.

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

Terminal window
export EXA_API_KEY=...

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

routeplane.yaml
server_tools:
web_search:
backends:
- kind: exa # key from api_key or EXA_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 Exa alongside [Parallel](/integrations/parallel), [Firecrawl](/integrations/firecrawl), or [Tavily](/integrations/tavily) to chain them.

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

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

The model then calls web_search with a query; Routeplane runs it against Exa and feeds the results back inside the tool loop. Exa fills title, snippet (highlights), score, and published on each result.