> ## 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.
> 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.
</Tip>

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

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

  exa = Exa()

  results = exa.search(
      "how to use Exa search in python",
      type="fast",
      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: "fast",
      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": "fast",
      "numResults": 10,
      "contents": {
        "highlights": true
      }
    }'
  ```
</CodeGroup>

## Get structured data with Exa Agent

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

<Card title="Start an Agent task" icon="bot" href="/docs/agent/quickstart" cta="Open Agent guide" arrow="true">
  Compare libraries, enrich repository records, or produce a structured list from multiple technical signals.
</Card>
