---
title: exa | CodeWeaver Docs
description: API reference for codeweaver.providers.data.exa
url: "https://docs.knitli.com/api/providers/data/exa"
type: static
generatedAt: "2026-04-17T17:21:08.956Z"
---

# exa
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/providers/data/exa.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F&text=exa)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F&text=exa)[Share on Bluesky](https://bsky.app/intent/compose?text=exa%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F&title=exa)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F&t=exa)[Share on Email](mailto:?subject=exa&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F)[Share on WhatsApp](https://wa.me/?text=exa%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Fdata%2Fexa%2F&text=exa)
# `codeweaver.providers.data.exa`
[Section titled “codeweaver.providers.data.exa”](#codeweaverprovidersdataexa)
Customized Exa data provider implementation for CodeWeaver.

## Class: `AsyncExa`
[Section titled “Class: AsyncExa”](#class-asyncexa)
Mock AsyncExa client for type checking.

## Class: `ExaAnswerResult`
[Section titled “Class: ExaAnswerResult”](#class-exaanswerresult)
An Exa answer result with citations.

See [Exa Answer API documentation ↗](https://docs.exa.ai/reference/answer) for more information.

## Class: `ExaAnswerTool`
[Section titled “Class: ExaAnswerTool”](#class-exaanswertool)
The Exa answer tool.

## Class: `ExaContentResult`
[Section titled “Class: ExaContentResult”](#class-exacontentresult)
Content retrieved from a URL.

See [Exa Contents API documentation ↗](https://docs.exa.ai/reference/get-contents) for more information.

## Class: `ExaFindSimilarTool`
[Section titled “Class: ExaFindSimilarTool”](#class-exafindsimilartool)
The Exa find similar tool.

## Class: `ExaGetContentsTool`
[Section titled “Class: ExaGetContentsTool”](#class-exagetcontentstool)
The Exa get contents tool.

## Class: `ExaSearchResult`
[Section titled “Class: ExaSearchResult”](#class-exasearchresult)
An Exa search result with content.

See [Exa Search API documentation ↗](https://docs.exa.ai/reference/search) for more information.

## Class: `ExaSearchTool`
[Section titled “Class: ExaSearchTool”](#class-exasearchtool)
The Exa search tool.

Class-level options will **override** options provided at call time. This is to prevent agents from overriding important configuration options or restrictions.

## Function: `exa_answer_tool`
[Section titled “Function: exa_answer_tool”](#function-exa_answer_tool)

**

```
exa_answer_tool()
```

Creates an Exa answer tool.

Args: client: The Exa async client. Required. system_prompt: An optional system prompt to provide to the Exa answer tool. This can be used to guide the behavior of the tool. For example, you could provide a prompt that instructs the tool to focus on certain types of sources. If not provided, the tool will use its default behavior. This is useful for sharing a client across multiple tools.

## Function: `exa_find_similar_tool`
[Section titled “Function: exa_find_similar_tool”](#function-exa_find_similar_tool)

**

```
exa_find_similar_tool()
```

Creates an Exa find similar tool.

Args: client: The Exa async client. Required.

num_results: The number of similar results to return. Defaults to 5. include_domains: An optional list of domains to include in the results. exclude_domains: An optional list of domains to exclude from the results. contents_options: Optional content retrieval options.

## Function: `exa_get_contents_tool`
[Section titled “Function: exa_get_contents_tool”](#function-exa_get_contents_tool)

**

```
exa_get_contents_tool()
```

Creates an Exa get contents tool.

Args: client: The Exa async client. Required. max_characters: Maximum characters of text content per result. Use this to limit token usage. Defaults to None (no limit). contents_options: Optional content retrieval options. filter_empty_results: Whether to filter out empty results. Defaults to True. summary: Whether to include a summary of the content. Defaults to None.

## Function: `exa_search_tool`
[Section titled “Function: exa_search_tool”](#function-exa_search_tool)

**

```
exa_search_tool()
```

Creates an Exa search tool.

Args: client: The Exa async client. Required.

num_results: The number of results to return. Defaults to 5. max_characters: Maximum characters of text content per result. Use this to limit token usage. Defaults to None (no limit).

## Function: `exa_toolset`
[Section titled “Function: exa_toolset”](#function-exa_toolset)

**

```
exa_toolset()
```

Create and optionally register Exa tools based on configuration.

This is the main entry point for the Exa data provider, used by the service card system. It creates all configured Exa tools based on the provided configuration.

Args: client: The Exa async client. config: Tool configuration. If None, uses `ExaToolConfig()` defaults (both answer and get-contents tools enabled by default). register: Whether to register the tools. Defaults to True.

Returns: List of created Tool instances.

## Function: `register_exa_tools`
[Section titled “Function: register_exa_tools”](#function-register_exa_tools)

**

```
register_exa_tools()
```

Registers Exa tools with the given FastMCP app.