> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.empiriolabs.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.empiriolabs.ai/_mcp/server.

# Exa Search

> Web search engine for finding pages, retrieving similar pages, crawling, and dedicated code search across the open web for AI agents.

![Exa Search](https://media.empiriolabs.ai/model-logos/exa-search.png)

[Exa](/providers/exa) · Research & Search

`POST /v1/search`

Web 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`                |
| Model release date  | -                           |
| 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, Auto or Fast (up to 10 results)      | per search  | \$0.0084 |
| Search, Instant or Neural (up to 10 results) | per search  | \$0.0048 |
| Search, Deep (up to 10 results)              | per search  | \$0.0144 |
| Find Similar (up to 10 results)              | per search  | \$0.0048 |
| Each Result Above 10                         | per page    | \$0.0012 |
| Result Summary                               | per page    | \$0.0012 |
| Contents: Text, Highlights or Summary (each) | per page    | \$0.0012 |
| Code Search                                  | per request | \$0.0048 |

## Example request

```bash
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 runs a web search, similar finds pages like a given URL, contents returns the text of given URLs, and code returns code context for a query. · Allowed: `search`, `similar`, `contents`, `code`                      |
| `search_type`          | enum    | no       | `"auto"`    | Search algorithm: auto, instant, neural, deep, or fast. Alias of type. · Allowed: `auto`, `instant`, `neural`, `deep`, `fast`                                                                                               |
| `type`                 | enum    | no       | `"auto"`    | Search algorithm: auto, instant, neural, deep, or fast. 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, such as research paper, news, or github. · Allowed: `company`, `research paper`, `news`, `github`, `tweet`, `movie`, `song`, `personal site`, `pdf`, `linkedin profile`, `financial report` |
| `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       | true        | Return each result's full page text. Alias of text.                                                                                                                                                                         |
| `show_content`         | boolean | no       | true        | Return each result's full page text. Alias of text.                                                                                                                                                                         |
| `text`                 | boolean | no       | true        | Return each result's 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. Not used by operation code.                                                                                                                             |
| `highlights`           | boolean | no       | false       | Include relevant text snippets ("highlights") per result. Not used by operation code.                                                                                                                                       |
| `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. Not used by operation code.                                                                                                                                   |
| `summary`              | boolean | no       | false       | Return an LLM-generated summary of each result. Not used by operation code.                                                                                                                                                 |
| `summary_query`        | string  | no       | -           | Custom summary prompt (only when summary=True)                                                                                                                                                                              |
| `livecrawl`            | enum    | no       | -           | Fetch a fresh crawl instead of cached content: always, preferred, fallback or never. When omitted, Exa's default applies. · 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       | Return the results as JSON instead of formatted Markdown.                                                                                                                                                                   |

## 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`.