Skip to main content
Exa is the search engine behind OpenRouter’s web search. OpenRouter gives you one API for hundreds of models, and Exa gives those models live web access: any model without native search grounds through Exa by default, and any model can be pointed at Exa explicitly. No Exa API key is needed. OpenRouter runs the searches server-side and bills them to your OpenRouter credits.

Use the web search server tool

Add openrouter:web_search to your tools array and the model decides when to search, what to search for, and whether to search again within the same request. Server tools are in beta on OpenRouter, and they replace the deprecated web plugin and :online model variants; see OpenRouter’s migration guide if you use either.
With the default engine: "auto", OpenRouter uses the provider’s native search where a model has one and Exa everywhere else. Set engine: "exa" to keep one search behavior across every model:

How results come back

OpenRouter requests Exa highlights for each result rather than full page text: extractive excerpts sized adaptively, typically 2,000 to 4,000 characters per result, unless you set max_characters or search_context_size. The model reads the excerpts, and API callers receive them in standardized url_citation annotations on the response message. Within one result, [...] markers separate excerpts drawn from different parts of the page.

Pricing

Exa searches bill to your OpenRouter credits, in addition to the model’s token costs for reading the results. The instant, fast, and auto modes cost $0.007 per search, deep-lite and deep cost $0.012, and deep-reasoning costs $0.015. Each search includes up to 10 results, and additional results cost $0.001 each. See OpenRouter’s web search docs for current rates. The response’s usage object reports how many searches the model ran in server_tool_use.web_search_requests.

Resources

Server tool docs

Full configuration reference for openrouter:web_search.

Customer story

How OpenRouter gives hundreds of models web search with Exa.
Last modified on September 15, 2026