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
},
},
},
},
},
tools: {
web: {
search: {
provider: "exa",
},
},
},
}

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

ParameterDescription
querySearch query (required)
countResults to return (1-100)
typeSearch mode: auto, neural, fast, deep, deep-reasoning, or instant
freshnessTime filter: day, week, month, or year
date_afterResults after this date (YYYY-MM-DD)
date_beforeResults before this date (YYYY-MM-DD)
contentsContent 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