Exa web search
exa_searchSearch the live web and get ranked pages with query-relevant highlights. Control search depth via fast/auto/max modes, enforce domain or date filters, and extract structured fields from results.
Instructions
Search the live web with Exa; returns ranked pages with query-relevant highlights (10 results). Search type comes from the mode unless you set type: fast = lite (<1 s) · auto = auto (~2 s) · max = deep-reasoning (7-20 s, best quality). See exa_mode for the current server mode. Put recency and source preferences in the query text; use filters only when they must be enforced. Use outputSchema (+ systemPrompt for keep/drop rules) to get fields extracted from the pages.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | Also return the full Exa JSON in structuredContent. Costs many tokens. | |
| mode | No | Quality preset for this call: fast (lite search, cheapest agent) · auto (Exa standard) · max (highest free-plan quality). Default: the server mode (see exa_mode). An explicit type/effort wins. | |
| type | No | Overrides the mode. deep-reasoning = strongest · deep = several searches, wide schemas · deep-lite · auto · lite = fastest, cached only. | |
| links | No | Return up to N links found on each page. | |
| query | Yes | What to retrieve, phrased like a search box entry. | |
| content | No | Page content to return. Pick one. highlights = short query-relevant excerpts (fewest tokens). | |
| noCache | No | Skip the local cache. | |
| category | No | Only when results must come from that index. Not for list-building (use exa_agent_run). | |
| maxChars | No | Cap on the text returned to you (default 8000). | |
| subpages | No | Also crawl up to N linked subpages per result. | |
| objective | No | The larger goal this search serves: what should rank first, what to exclude, which facts to pull. | |
| imageLinks | No | Return up to N image URLs per page. | |
| numResults | No | Default 10. Results above 10 cost $0.001 each. | |
| excludeText | No | Pages must not contain this phrase (1 phrase, up to 5 words). | |
| includeText | No | Pages must contain this phrase (1 phrase, up to 5 words). | |
| maxAgeHours | No | Cache freshness: 0 = always live crawl, -1 = cache only, N = accept cache up to N hours. Not a publish-date filter. | |
| outputSchema | No | JSON Schema for synthesized output in output.content. Keep it small. | |
| snapshotAsOf | No | Exa Snapshot: the page as it was at this ISO date-time. Paid plans only. Not with maxAgeHours/livecrawlTimeout/subpages. | |
| summaryQuery | No | What the per-page summary should focus on (summary mode; one LLM call per page). | |
| systemPrompt | No | Rules for synthesized output: keep/drop, source preference, what to do with unverifiable fields. | |
| userLocation | No | Two-letter ISO country code, e.g. ID. | |
| maxCharacters | No | Per-page cap for text or highlights. Only for a hard budget. | |
| subpageTarget | No | Keywords that pick which subpages to crawl, e.g. 'pricing' or ['docs','api']. | |
| summarySchema | No | JSON Schema for a structured per-page summary (summary mode). | |
| excludeDomains | No | Hard blocklist. | |
| includeDomains | No | Hard allowlist, e.g. ['openai.com/blog','*.substack.com']. | |
| highlightsQuery | No | Steer which excerpts are picked (highlights mode). | |
| endPublishedDate | No | ||
| livecrawlTimeout | No | Live crawl timeout in ms. | |
| startPublishedDate | No | Hard filter; drops undated pages. Only for a stated date window. |