Exa Search

Exa · Research & Search
POST /v1/searchWeb search engine for finding pages, retrieving similar pages, crawling, and dedicated code search across the open web for AI agents.
At a glance
| Field | Value |
|---|---|
| Model id | exa-search |
| Input modalities | Text |
| Output modalities | Text |
| Context window | - |
| Weight precision | - |
| Features | web_search, semantic_search |
| Native inference | No |
| New | No |
| Supported endpoints | POST /v1/search |
Pricing
| Charge | Spec | Rate |
|---|---|---|
| Search (1-25 results) | per search | $0.0060 |
| Search (26-100 results) | per search | $0.030 |
| Content (Text/Highlights/Summary) | per page/feature | $0.0060 |
| Code Search | per 1k tokens | $0.0060 |
Example request
$ curl https://api.empiriolabs.ai/v1/search \ > -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ > -H 'Content-Type: application/json' \ > -d '{"model": "exa-search", "query": "latest LLM benchmarks 2026"}'
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | yes | - | Search query (or URL for similar) |
operation | enum | no | "search" | search | answer | research. Determines which Exa endpoint runs. · Allowed: search, similar, contents, code |
search_type | enum | no | "auto" | Choose the search algorithm: auto, neural, keyword, fast, or full. Alias of type. · Allowed: auto, instant, neural, deep, fast |
type | enum | no | "auto" | auto | keyword | neural. Auto picks the best mode per query. · Allowed: auto, instant, neural, deep, fast |
num_results | number | no | 10 | How many results to return (1-100). · Range: 1 – 100 |
category | enum | no | - | Restrict results to a category (research-paper, news, github, etc.). · Allowed: company, research paper, news, github, tweet, movie, song, personal site, pdf |
include_domains | string | no | - | Comma-separated allowlist of domains. Only results from these domains are returned (e.g. arxiv.org, github.com). |
exclude_domains | string | no | - | Comma-separated denylist of domains to filter out of results. |
include_text | string | no | - | Comma-separated text snippets that must appear |
exclude_text | string | no | - | Comma-separated text snippets to exclude |
start_crawl_date | string | no | - | Only return results crawled after this date. ISO 8601 (e.g. 2024-01-01T00:00:00Z). |
end_crawl_date | string | no | - | Only return results crawled before this date. ISO 8601. |
start_published_date | string | no | - | Only return results published after this date. ISO 8601. |
end_published_date | string | no | - | Only return results published before this date. ISO 8601. |
return_text | boolean | no | false | Fetch the full page text content for each result. Alias of text. |
show_content | boolean | no | false | Display the complete page content in results. Alias of text. |
text | boolean | no | false | Return full page text |
text_max_chars | number | no | 2000 | Cap on the cleaned-text length per result. · Range: 100 – 100000 |
include_html_tags | boolean | no | false | Keep HTML tags in the extracted text. |
return_highlights | boolean | no | false | Get AI-selected key snippets from each result. Alias of highlights. |
highlights | boolean | no | false | Include relevant text snippets (“highlights”) per result. |
highlights_query | string | no | - | Query used to score which sentences become highlights. |
highlights_sentences | number | no | 3 | Number of sentences to include per highlight. · Range: 1 – 10 |
highlights_per_url | number | no | 3 | Max highlights returned per URL. · Range: 1 – 10 |
return_summary | boolean | no | false | Get an AI-generated summary of each result. Alias of summary. |
summary | boolean | no | false | Return an LLM-generated summary of each result. |
summary_query | string | no | - | Custom summary prompt (only when summary=True) |
livecrawl | enum | no | "fallback" | never | fallback | always. Fetch a fresh crawl instead of cached content. · Allowed: always, fallback, never, preferred |
subpages | number | no | 0 | Number of related subpages to fetch alongside each main result. · Range: 0 – 10 |
subpage_target | string | no | - | Keyword guiding which subpages to fetch (e.g. “pricing”). |
code_tokens | enum | no | "dynamic" | Max tokens of code to include when scraping code-heavy pages. · Allowed: dynamic, 5000, 10000, 20000 |
disable_formatting | boolean | no | false | Skip the EmpirioLabs Markdown formatting (Sources / References / Code blocks added by the renderer). The raw upstream Exa search JSON is returned for power users / agents that want to parse the schema directly. |
Notes
Operations
- search, similar pages, contents, code search
Search types
- Auto, Instant (sub-150ms), Neural (embeddings), Deep Search (Exa 2.1), Fast
Categories
- Company, Research Paper, News, PDF, GitHub, Tweet, Personal Site, LinkedIn Profile, Financial Report
Machine-readable schema: GET https://api.empiriolabs.ai/v1/models/exa-search.
