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

# Exa Connect

> Give your Exa Agent live access to premium data partners, alongside Exa web search, in a single run.

Exa Connect integrates premium data partners into the Exa Agent loop. Attach a
provider to a run, and the Exa Agent queries that partner's database alongside web
search before combining the results into one grounded, structured answer.

New to agent runs? Start with the [Exa Agent guide](https://exa.ai/docs/agent/quickstart.md),
then come back to attach data partners.

> [!TIP]
>
> Exa Agent already searches the full [data index](https://exa.ai/docs/search/data/overview.md), the same
> news, code, company, and people sources as the Search API. Exa Connect adds
> premium partner databases on top of it.

> [!TIP]
>
> Prefer MCP? Exa Agent and [Exa Connect](https://exa.ai/docs/agent/connect/overview.md) are available in [Exa MCP](https://exa.ai/docs/get-started/exa-mcp.md#exa-agent). Connect with OAuth or your API key and the `agent_run` tool is enabled by default, so you can run multi-step research, list-building, enrichment, and structured output from Claude, Cursor, and other MCP clients.

## Why Exa Connect

* **Premium data without separate integrations.** Access partner data without
  signing contracts or wiring up an SDK. You call one Exa API.
* **Exa handles the plumbing.** We manage provider authentication, tool selection,
  retries, and result ranking.
* **The Exa Agent chooses the source.** When your `outputSchema` asks for
  "monthly visits from Similarweb" or "verified officers," the Exa Agent calls the
  matching partner tool instead of guessing from a web page.
* **Index and partner data in one run.** Connect sits on top of the Exa index.
  The Exa Agent uses each source where it is strongest and cites the results.

## How it works

1. **Attach** one or more providers via the `dataSources` array on
   [`POST /agent/runs`](https://exa.ai/docs/reference/agent-api/create-a-run).
2. The Exa Agent **selects the right tool** for each step based on your query and
   `outputSchema`: partner data or Exa web search.
3. Partner results are **fused with web research** into your structured output,
   with sources attached.

## Pricing

> [!NOTE]
>
> Exa Connect pricing is additive with standard [Agent run pricing](https://exa.ai/docs/agent/quickstart.md#pricing).
> You pay the usual Agent compute and search costs, plus the provider call charge for each Exa Connect tool call.

| Provider | Price |
| - | - |
| [Fiber.ai](https://exa.ai/docs/agent/connect/fiber.md#pricing) | `$0.02 / credit` |
| [Similarweb](https://exa.ai/docs/agent/connect/similarweb.md#pricing) | `$0.30 / credit` |
| [Baselayer](https://exa.ai/docs/agent/connect/baselayer.md#pricing) | `$0.10 – $4.00 / order (varies by operation)` |
| [Polymarket](https://exa.ai/docs/agent/connect/polymarket.md#pricing) | `Free` |
| [Macrobond](https://exa.ai/docs/agent/connect/macrobond.md#pricing) | `Free` |
| [Affiliate.com](https://exa.ai/docs/agent/connect/affiliatecom.md) | `$0.015 / call` |
| [Particle](https://exa.ai/docs/agent/connect/particle.md) | `$0.015 / call` |
| [Financial Datasets](https://exa.ai/docs/agent/connect/financialdatasets.md) | `$0.01 / call` |
| [Jinko](https://exa.ai/docs/agent/connect/jinko.md) | `$0.005 / call` |

Fiber.ai bills in credits rather than per call, because its own charge varies by
call: a search costs 2 credits plus 1 per result returned, a company or person
lookup is billed per candidate returned (so raising a company lookup's
`numResults` to disambiguate an ambiguous name costs more), and a contact
reveal 2–5 credits depending on whether you ask for work email, personal email,
or phone. You are charged the credits Fiber reports for each call; calls that
return no match are free. See [Fiber.ai pricing](https://exa.ai/docs/agent/connect/fiber.md#pricing).

Similarweb bills in data credits (roughly one per metric × row × month), so a
call's price follows its `numResults`/`months` — 1 to 15 credits per call. You
are charged the credits Similarweb reports for each call; calls that return no
data are free. See [Similarweb pricing](https://exa.ai/docs/agent/connect/similarweb.md#pricing).

Baselayer bills per order, and the rate depends on the operation: a KYB
business search is \$1.00, a UCC lien search is \$2.00 per state searched, a
litigation/bankruptcy docket search is \$1.00 per category, watchlist screening
is \$0.10–\$0.25 per list requested, industry classification and website
analysis are \$0.35 each, web presence is the sum of the selected analyses
(\$0.15–\$0.35 each), and an international business search is \$4.00. Follow-up
reads of a prior business search (business lookup, officers, registrations,
officer reverse lookup) are free. See [Baselayer pricing](https://exa.ai/docs/agent/connect/baselayer.md#pricing).

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

exa = Exa()
run = exa.agent.runs.create(
    query="Profile Anthropic: total funding and estimated monthly web traffic.",
    data_sources=[{"provider": "fiber"}, {"provider": "similarweb"}],
    output_schema={
        "type": "object",
        "required": ["company"],
        "properties": {
            "company": {
                "type": "object",
                "required": ["name", "totalFunding", "monthlyVisits"],
                "properties": {
                    "name": {"type": "string"},
                    "totalFunding": {"type": "string", "description": "from Fiber.ai"},
                    "monthlyVisits": {"type": "number", "description": "from Similarweb"},
                },
            }
        },
    },
)
run = exa.agent.runs.poll_until_finished(run.id)
```

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

const exa = new Exa();
const run = await exa.agent.runs.create({
  query: "Profile Anthropic: total funding and estimated monthly web traffic.",
  dataSources: [{ provider: "fiber" }, { provider: "similarweb" }],
  outputSchema: {
    type: "object",
    required: ["company"],
    properties: {
      company: {
        type: "object",
        required: ["name", "totalFunding", "monthlyVisits"],
        properties: {
          name: { type: "string" },
          totalFunding: { type: "string", description: "from Fiber.ai" },
          monthlyVisits: { type: "number", description: "from Similarweb" },
        },
      },
    },
  },
});
```

```bash cURL theme={null}
curl -s -X POST "https://api.exa.ai/agent/runs" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $EXA_API_KEY" \
  -d '{
    "query": "Profile Anthropic: total funding and estimated monthly web traffic.",
    "dataSources": [{ "provider": "fiber" }, { "provider": "similarweb" }],
    "outputSchema": {
      "type": "object",
      "required": ["company"],
      "properties": {
        "company": {
          "type": "object",
          "required": ["name", "totalFunding", "monthlyVisits"],
          "properties": {
            "name": { "type": "string" },
            "totalFunding": { "type": "string", "description": "from Fiber.ai" },
            "monthlyVisits": { "type": "number", "description": "from Similarweb" }
          }
        }
      }
    }
  }'
```

## Data partners

> [card] [Fiber.ai](https://exa.ai/docs/agent/connect/fiber.md)
>
> **GTM & recruiting.** B2B database of companies and people for lead discovery
> and contact research.

> [card] [Similarweb](https://exa.ai/docs/agent/connect/similarweb.md)
>
> **Web analytics.** Traffic estimates, global rankings, and competitor
> discovery for any domain.

> [card] [Baselayer](https://exa.ai/docs/agent/connect/baselayer.md)
>
> **Compliance & KYB.** Verify US businesses: officers, registrations, and risk
> signals.

> [card] [Polymarket](https://exa.ai/docs/agent/connect/polymarket.md)
>
> **Prediction markets.** Prediction market odds, price history, and trader
> positions from Polymarket.

> [card] [Macrobond](https://exa.ai/docs/agent/connect/macrobond.md)
>
> **Macroeconomic data.** Global economic and financial time series, entity
> metadata, and release calendars.

> [card] [Affiliate.com](https://exa.ai/docs/agent/connect/affiliatecom.md)
>
> **Commerce.** Product catalog search with pricing, brands, and merchant links.

> [card] [Particle](https://exa.ai/docs/agent/connect/particle.md)
>
> **Media intelligence.** Search podcast transcripts with speaker attribution
> and timestamps.

> [card] [Financial Datasets](https://exa.ai/docs/agent/connect/financialdatasets.md)
>
> **Finance.** Prices, fundamentals, earnings, SEC filings, ownership, and
> stock screening for 27,000+ U.S. tickers.

> [card] [Jinko](https://exa.ai/docs/agent/connect/jinko.md)
>
> **Travel.** Flight and Hotel search with real-time pricing.

Need a source that isn't listed above? See our [Additional providers](https://exa.ai/docs/agent/connect/additional-partners.md), which are available upon request by contacting our team.

## Zero Data Retention

Teams with [Zero Data Retention](https://exa.ai/docs/admin/security/zero-data-retention.md) (ZDR) can attach only ZDR-eligible providers to a run. A ZDR request whose `dataSources` includes any other provider returns a `400` error that names it.

| Provider | `provider` value | ZDR eligible |
| - | - | - |
| [Fiber.ai](https://exa.ai/docs/agent/connect/fiber.md) | `fiber` | Yes |
| [Baselayer](https://exa.ai/docs/agent/connect/baselayer.md) | `baselayer` | Yes |
| [Macrobond](https://exa.ai/docs/agent/connect/macrobond.md) | `macrobond` | Yes |
| [Jinko](https://exa.ai/docs/agent/connect/jinko.md) | `jinko` | Yes |
| [Similarweb](https://exa.ai/docs/agent/connect/similarweb.md) | `similarweb` | No |
| [Polymarket](https://exa.ai/docs/agent/connect/polymarket.md) | `polymarket` | No |
| [Affiliate.com](https://exa.ai/docs/agent/connect/affiliatecom.md) | `affiliate` | No |
| [Particle](https://exa.ai/docs/agent/connect/particle.md) | `particle` | No |
| [Financial Datasets](https://exa.ai/docs/agent/connect/financialdatasets.md) | `financial_datasets` | No |

See [Exa Agent: Zero Data Retention](https://exa.ai/docs/agent/quickstart.md#zero-data-retention) for the other limits on ZDR runs.

## Usage

### Combining providers

Attach as many partners as your task needs. The Exa Agent calls each one where it is
strongest and blends the results with web search into a single structured answer:

```json theme={null}
{
  "dataSources": [
    { "provider": "similarweb" },
    { "provider": "fiber" },
    { "provider": "harmonic" }
  ]
}
```

For a full walkthrough, including how to shape your query and `outputSchema` so every
partner fires, see [Combining providers](https://exa.ai/docs/agent/connect/combining-providers.md).
