> ## Documentation Index
> Fetch the complete documentation index at: https://exa.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The Exa API is served at https://api.exa.ai. Authenticate with `Authorization: Bearer $EXA_API_KEY` (or `x-api-key: $EXA_API_KEY`); create keys at https://dashboard.exa.ai/api-keys?utm_source=docs&utm_medium=docs&utm_campaign=markdown_instructions. Every way an agent can get access to Exa is described at https://exa.ai/auth.md.
> Prefer the official SDKs, `exa-py` (`pip install exa-py`) and `exa-js` (`npm install exa-js`); both read `EXA_API_KEY` from the environment.
> Tool-using agents can call Exa without writing code through the hosted MCP server at https://mcp.exa.ai/mcp, or install the Exa agent skill with `npx skills add exa-labs/agent-skills` (skill file: https://exa.ai/docs/skill.md).
> The OpenAPI specs at https://exa.ai/docs/exa-spec.yaml and https://exa.ai/docs/team-management-spec.yaml are the source of truth for request and response schemas.

# Code & Docs

> Find code, technical documentation, and implementation guidance with Exa Search.

Use Exa Search for repositories, technical documentation, package information, and implementation guidance with natural-language queries.

> [!TIP]
>
> Read [WebCode: Search Evals for Coding Agents](https://exa.ai/blog/webcode) to learn how Exa
> evaluates retrieval for coding tasks.

## Use it for

* Coding agents and code-generation tools
* Developer search and documentation products
* Debugging, migration, and configuration workflows
* Technical research across repositories, docs, and package registries

## Example queries

### Discover libraries by capability

Describe the capability, ecosystem, and constraints you care about. This retrieves candidates based on what they do instead of relying on an exact project name.

```text theme={null}
open source Rust libraries for vector similarity search
```

### Retrieve implementation documentation

Name the product and the exact operation. Search can then prioritize API documentation and implementation guides over general discussion.

```text theme={null}
Stripe webhook signature verification documentation
```

### Check version-specific changes

Include the release channel or version when compatibility matters. This reduces results about older releases.

```text theme={null}
breaking changes in the latest stable release of Pydantic v2
```

### Find reusable agent tooling

State the artifact type and task rather than searching for a broad phrase such as “AI tools.”

```text theme={null}
agent skills for extracting tables from PDFs
```

## Make a request

```python Python theme={null}
from exa_py import Exa

exa = Exa()

results = exa.search(
    "how to use Exa search in python",
    type="lite",
    num_results=10,
    contents={"highlights": True},
)
```

```javascript JavaScript theme={null}
import Exa from "exa-js";

const exa = new Exa();

const results = await exa.search(
  "how to use Exa search in python",
  {
    type: "lite",
    numResults: 10,
    contents: {
      highlights: true,
    },
  }
);
```

```bash cURL theme={null}
curl -s -X POST https://api.exa.ai/search \
  -H "Authorization: Bearer $EXA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "how to use Exa search in python",
    "type": "lite",
    "numResults": 10,
    "contents": {
      "highlights": true
    }
  }'
```

## Get structured data with Exa Agent

For structured data that requires research across multiple sources, use an [Exa Agent task run](https://exa.ai/docs/agent/quickstart.md). Describe the libraries, technical criteria, and output fields you need, and Agent returns schema-validated results with citations.

> [card] [Start an Agent task](https://exa.ai/docs/agent/quickstart.md)
>
> Compare libraries, enrich repository records, or produce a structured list from multiple technical signals.
