Skip to content

Exa search

OpenClaw supports Exa AI as a web_search provider. Exa offers neural, keyword, and hybrid search modes with built-in content extraction (highlights, text, summaries).

  1. Create an account

    Sign up at exa.ai and generate an API key from your dashboard.

  2. Store the key

    Set EXA_API_KEY in the Gateway environment, or configure via:

    Terminal window
    openclaw configure --section web
{
plugins: {
entries: {
exa: {
config: {
webSearch: {
apiKey: "exa-...", // optional if EXA_API_KEY is set
baseUrl: "https://api.exa.ai", // optional; OpenClaw appends /search
},
},
},
},
},
tools: {
web: {
search: {
provider: "exa",
},
},
},
}

Environment alternative: set EXA_API_KEY in the Gateway environment. For a gateway install, put it in ~/.openclaw/.env.

Set plugins.entries.exa.config.webSearch.baseUrl when Exa search requests should go through a compatible proxy or alternate Exa endpoint. OpenClaw normalizes bare hosts by prepending https:// and appends /search unless the path already ends there. The resolved endpoint is included in the search cache key, so results from different Exa endpoints are not shared.

Search query. Results to return (1–100). Search mode. Time filter. Results after this date (`YYYY-MM-DD`). Results before this date (`YYYY-MM-DD`). Content extraction options (see below).

Exa can return extracted content alongside search results. Pass a contents object to enable:

await web_search({
query: "transformer architecture explained",
type: "neural",
contents: {
text: true, // full page text
highlights: { numSentences: 3 }, // key sentences
summary: true, // AI summary
},
});
Contents optionTypeDescription
textboolean | { maxCharacters }Extract full page text
highlightsboolean | { maxCharacters, query, numSentences, highlightsPerUrl }Extract key sentences
summaryboolean | { query }AI-generated summary
ModeDescription
autoExa picks the best mode (default)
neuralSemantic/meaning-based search
fastQuick keyword search
deepThorough deep search
deep-reasoningDeep search with reasoning
instantFastest results
  • If no contents option is provided, Exa defaults to { highlights: true } so results include key sentence excerpts
  • Results preserve highlightScores and summary fields from the Exa API response when available
  • Result descriptions are resolved from highlights first, then summary, then full text — whichever is available
  • freshness and date_after/date_before cannot be combined — use one time-filter mode
  • Up to 100 results can be returned per query (subject to Exa search-type limits)
  • Results are cached for 15 minutes by default (configurable via cacheTtlMinutes)
  • Exa is an official API integration with structured JSON responses