## Welcome

We’re honored that you’re reading our docs in 2026. These docs serve two audiences: human readers, and coding agents that should read [this guide](/content/docs/reference/search-api-guide-for-coding-agents/index.html) instead.

## Why choose Exa?

Exa is a custom search engine built for AIs. Our API is the only that offers:

### Search types for any agent
Whether you’re building a fast chatbot or a deep research tool, Exa has custom search types with appropriate latency-quality profiles, from 200ms instant search to 60s deep search.See all search types →

| Type              | Speed          | Best For                                                      |
|-------------------|----------------|---------------------------------------------------------------|
| `auto`            | ~1s            | Default                                                      |
| `instant`         | ~200ms         | Real-time apps (e.g., chat, voice)                           |
| `fast`            | ~450ms         | Speed with minimal quality sacrifice                           |
| `deep-lite`      | ~2s to 10s     | Lightweight synthesized search output                          |
| `deep`           | 5s to 60s      | Complex queries requiring multi-step reasoning with structured outputs |
| `deep-reasoning` | 10s to 60s     | Higher-reasoning synthesized output for harder research tasks |

### 10x token-efficient contents
LLMs just want dense information! At Exa, we train models that take full webpages and condense them into just the tokens an LLM needs. This saves LLM costs and also produces better RAG evals in most cases — we call it `highlights`.We can also use LLMs to process information on our end, returning structured outputs or grounded answers.See all contents types →

**LLM Outputs**

| Type                     | Description                                                                 |
|--------------------------|-----------------------------------------------------------------------------|
| **Structured outputs**   | Use `output_schema` with any search type to extract structured JSON from search results |
| **LLM summaries**        | AI-generated overviews of each result’s content                            |
| **Grounded answers**     | Full answers with citations via `/answer`, or use `output_schema` on `/search` for grounded text or structured extraction |

**Webpage Content**

| Type          | Description                                                |
|---------------|------------------------------------------------------------|
| **Highlights** | 10x token efficient extracts of only the relevant tokens from a webpage. 4000 characters recommended. |
| **Full text**  | Full webpage text, when full comprehensiveness needed   |

### Custom data types
Agents can parallel process gigantic quantities of precise information. Exa has custom indexes of 1B+ people, 50M+ companies, 100M+ research papers, and more.See all data types →

| Category           | Best For                                      |
|-------------------|------------------------------------------------|
| `company`         | 50M+ company pages and metadata                |
| `people`          | 1B+ people and metadata (e.g., job, education) |
| `research paper`  | 100M+ full papers                              |
| `news`            | Current events, journalism                      |
| `personal site`   | Blogs, personal pages                          |
| `financial report` | SEC filings, earnings reports                  |

## Common use cases

### Web search tool
Give any agent the ability to search the web in real time.See example code →

```python
results = exa.search(
  "news about Iran",
  type="auto",
  contents={"highlights": True},
)
```

### Data enrichment / Structured output
Extract structured JSON from the web with custom schemas. Deeper search types work best for harder synthesis tasks.See example code →

```python
result = exa.search(
  "top aerospace companies",
  type="deep",
  output_schema={
    "type": "object",
    "required": ["companies"],
    "properties": {
      "companies": {
        "type": "array",
        "items": {
          "type": "object",
          "required": ["company_name", "ceo_name"],
          "properties": {
            "company_name": {"type": "string"},
            "ceo_name": {"type": "string"}
          }
        }
      }
    }
  }
)
```

`output_schema`, `system_prompt`, and `stream` work across all search types. For more demanding synthesis, prefer deeper search types like `deep-lite` or `deep`.

### Company/People research
Find and enrich companies/people with dozens of fields.See example code →

```python
company_results = exa.search(
  "agtech companies in the US that have raised series A",
  type="auto",
  category="company",
  contents={"text": {"max_characters": 20000}}
)

people_results = exa.search(
  "software engineers that work at fintech companies",
  type="auto",
  category="people",
  contents={"text": {"max_characters": 20000}}
)
```

## Human Quickstart

Get your API key from the [Exa Dashboard](https://dashboard.exa.ai/api-keys).

### Python

```bash
pip install exa-py
```

```python
from exa_py import Exa

exa = Exa(api_key="your-api-key")

result = exa.search(
  "blog post about artificial intelligence",
  type="auto",
  contents={"highlights": True},
)
```

### JavaScript

```bash
npm install exa-js
```

```javascript
import Exa from "exa-js";

const exa = new Exa("your-api-key");

const result = await exa.search("blog post about artificial intelligence", {
  type: "auto",
  contents: {
    highlights: true,
  },
});
```

### cURL

```bash
curl -X POST "https://api.exa.ai/search" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "query": "blog post about artificial intelligence",
    "type": "auto",
    "contents": {
      "highlights": true
    }
  }'
```

## Next
- [**Contents API**](/content/docs/reference/contents-api-guide/index.html) \- Extract clean content from any URL
- [**Search API Reference**](/content/docs/reference/search/index.html) \- Full API reference with all parameters
- [**MCP Setup**](/content/docs/reference/exa-mcp/index.html) \- Connect your AI assistant to Exa
- [**SDKs**](/content/docs/sdks/python-sdk/index.html) \- Python and JavaScript SDK docs
