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

# OpenHuman

> Give the OpenHuman agent live web search with Exa, either managed or with your own Exa API key.

[OpenHuman](https://tinyhumans.gitbook.io/openhuman) by TinyHumans is a desktop AI assistant with a native web search tool the agent calls on its own. Exa is the search provider behind that tool.

| Approach | Setup | Runs on |
| - | - | - |
| **OpenHuman Managed** | None | OpenHuman's backend, powered by Exa. No API key. |
| **Exa provider** | Paste an Exa API key | Your machine, straight to `https://api.exa.ai` on your own Exa account. |

## OpenHuman Managed

Managed search is the default. Choose **Simple** during onboarding and the agent can search the web immediately.

![OpenHuman onboarding asking how to run OpenHuman, with the Simple option selected](https://mintcdn.com/exa-52/lBRUht3CpNlQPh4p/images/integrations/openhuman/onboarding-runtime-choice.png?fit=max\&auto=format\&n=lBRUht3CpNlQPh4p\&q=85\&s=bc4395e75a47554bf741c39bc23a9b36)

Choose Simple during onboarding for Exa-powered managed search

> [!TIP]
>
> **Managed is the fastest way to get Exa results.** No key to create, store, or rotate, no credentials on your machine, and search is billed on your OpenHuman subscription.

## Exa provider

Configure Exa directly to run search on your own Exa account and give the agent Exa's search and page-contents tools.

### Get your Exa API key

> [card] [Get your Exa API key](https://dashboard.exa.ai/api-keys?utm_source=docs\&utm_medium=docs\&utm_campaign=get_key_card)
>
> Create a key in the dashboard. New accounts start with free credits.

### Add Exa in OpenHuman

1. Open **Connections**, then select **Search engine** under **API keys**.

![The OpenHuman Connections page with Search engine selected under API keys, showing the search engine list with OpenHuman Managed active](https://mintcdn.com/exa-52/lBRUht3CpNlQPh4p/images/integrations/openhuman/connections-search.png?fit=max\&auto=format\&n=lBRUht3CpNlQPh4p\&q=85\&s=fade0adb98ff41285546365851f79df7)

Connections → API keys → Search engine

2. Select **Exa**.

![The Exa engine option selected in the OpenHuman Search engine panel, showing the Needs API key badge](https://mintcdn.com/exa-52/lBRUht3CpNlQPh4p/images/integrations/openhuman/select-exa.png?fit=max\&auto=format\&n=lBRUht3CpNlQPh4p\&q=85\&s=3b6a9f492b89da38097bb243730aed70)

Exa selected, waiting on a key

3. Paste your key into **Exa API key** and select **Save**.

![The Exa API key field in OpenHuman with a key entered and the Save button visible](https://mintcdn.com/exa-52/lBRUht3CpNlQPh4p/images/integrations/openhuman/enter-api-key.png?fit=max\&auto=format\&n=lBRUht3CpNlQPh4p\&q=85\&s=1a5f91044b2b020317ce9705f76cf1a4)

Save the Exa API key

![The OpenHuman Search engine panel with Exa selected and marked Configured](https://mintcdn.com/exa-52/lBRUht3CpNlQPh4p/images/integrations/openhuman/configured.png?fit=max\&auto=format\&n=lBRUht3CpNlQPh4p\&q=85\&s=b3c8df585a06a31daa8bba6c2a516722)

Exa configured as the active search engine

### Configuration

The panel writes to OpenHuman's `config.toml`. Set the same values in the file or the environment instead:

> [tab] config.toml
>
> ```toml config.toml theme={null}
> [search]
> engine = "exa"        # required
> max_results = 5       # optional, 1-20
> timeout_secs = 15     # optional
>
> [search.exa]
> api_key = "your-exa-api-key"   # required
> ```

> [tab] Environment
>
> ```bash theme={null}
> OPENHUMAN_SEARCH_ENGINE=exa
> EXA_API_KEY=your-exa-api-key
> ```
>
> > [!NOTE]
> >
> > `EXA_API_KEY` and `OPENHUMAN_EXA_API_KEY` both override `search.exa.api_key`. When both are set, `OPENHUMAN_EXA_API_KEY` takes precedence.

### Tools the agent gets

| Tool | Returns |
| - | - |
| `web_search_tool` | Web search, served by Exa. |
| `exa_search` | Ranked pages with titles, URLs, publish dates, and optional text. |
| `exa_get_contents` | Full contents of given URLs, with optional summaries or highlights. |

The agent sets Exa's [search parameters](https://exa.ai/docs/search/quickstart.md) per call, so plain instructions are enough to steer search mode, domains, dates, and categories.

## Troubleshooting

> [accordion] Exa search unavailable: no API key configured
>
> OpenHuman found no key in the **Search engine** panel, the `EXA_API_KEY` and `OPENHUMAN_EXA_API_KEY` variables, or `search.exa.api_key`. Set it in one of them, and restart OpenHuman if you edited `config.toml` while it was running.

> [accordion] Exa rejected the configured API key (HTTP 401)
>
> The key is invalid or revoked. Check it in the [Exa dashboard](https://dashboard.exa.ai/api-keys?utm_source=docs\&utm_medium=docs\&utm_campaign=integrations_openhuman), then **Clear** the stored key and save the correct one. Watch for pasted whitespace.

> [accordion] Exa returned non-2xx status
>
> `429` means a rate limit or exhausted quota: check usage in the [dashboard](https://dashboard.exa.ai/home?utm_source=docs\&utm_medium=docs\&utm_campaign=integrations_openhuman). For `5xx`, retry, then see [error codes](https://exa.ai/docs/admin/error-codes.md).

> [accordion] OpenHuman Managed is missing from the engine list
>
> Local-only sessions cannot use managed search. Configure the Exa provider with your own key.

## Resources

> [card] [OpenHuman web search docs](https://tinyhumans.gitbook.io/openhuman/features/native-tools/web-search)
>
> Read OpenHuman's own reference for its search engines.

> [card] [Exa search API](https://exa.ai/docs/search/quickstart.md)
>
> Understand the search modes, filters, and content options behind the Exa tools.

> [card] [Search best practices](https://exa.ai/docs/search/best-practices.md)
>
> Get better results out of every query.
