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

# Affiliate.com

> Search product catalogs across merchants and affiliate networks.

[Affiliate.com](https://affiliate.com) aggregates product catalogs across
merchants and affiliate networks into a single searchable index, with live
pricing, brands, and direct merchant links.

Attach `affiliate` to an [Exa Agent](https://exa.ai/docs/agent/quickstart.md) run through
[Exa Connect](https://exa.ai/docs/agent/connect/overview.md), and the agent queries
Affiliate.com alongside Exa web search.

## Use it for

* Product discovery and price comparison across merchants.
* Powering shopping assistants and buying-guide content.
* Surfacing affiliate links alongside research.

## Provider ID

Use this value in `dataSources`:

```text theme={null}
affiliate
```

## Example

Find wireless noise-cancelling headphones under \$300 and compare pricing.

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

exa = Exa()
run = exa.agent.runs.create(
    query="Find wireless noise-cancelling headphones under $300 with pricing from multiple merchants.",
    data_sources=[{"provider": "affiliate"}],
    output_schema={
        "type": "object",
        "required": ["products"],
        "properties": {
            "products": {
                "type": "array",
                "maxItems": 10,
                "items": {
                    "type": "object",
                    "required": ["name", "brand", "price", "merchant"],
                    "properties": {
                        "name": {"type": "string"},
                        "brand": {"type": "string"},
                        "price": {"type": "string", "description": "price with currency"},
                        "merchant": {"type": "string"},
                    },
                },
            }
        },
    },
)
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: "Find wireless noise-cancelling headphones under $300 with pricing from multiple merchants.",
  dataSources: [{ provider: "affiliate" }],
  outputSchema: {
    type: "object",
    required: ["products"],
    properties: {
      products: {
        type: "array",
        maxItems: 10,
        items: {
          type: "object",
          required: ["name", "brand", "price", "merchant"],
          properties: {
            name: { type: "string" },
            brand: { type: "string" },
            price: { type: "string", description: "price with currency" },
            merchant: { type: "string" },
          },
        },
      },
    },
  },
});
```

```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": "Find wireless noise-cancelling headphones under $300 with pricing from multiple merchants.",
    "dataSources": [{ "provider": "affiliate" }],
    "outputSchema": {
      "type": "object",
      "required": ["products"],
      "properties": {
        "products": {
          "type": "array",
          "maxItems": 10,
          "items": {
            "type": "object",
            "required": ["name", "brand", "price", "merchant"],
            "properties": {
              "name": { "type": "string" },
              "brand": { "type": "string" },
              "price": { "type": "string", "description": "price with currency" },
              "merchant": { "type": "string" }
            }
          }
        }
      }
    }
  }'
```

## Pairs well with

* [Similarweb](https://exa.ai/docs/agent/connect/similarweb.md): gauge a merchant's reach before recommending it.
* [Fiber.ai](https://exa.ai/docs/agent/connect/fiber.md): research the company behind a merchant or brand.

## Next steps

> [card] [Attach it to a run](https://exa.ai/docs/agent/connect/overview.md)
>
> The Exa Connect quickstart covers `dataSources`, pricing, and the full partner catalog.

> [card] [Combine providers](https://exa.ai/docs/agent/connect/combining-providers.md)
>
> Attach up to five partners to one run and shape the query so each one fires.

> [card] [Learn Exa Agent](https://exa.ai/docs/agent/quickstart.md)
>
> Create runs, stream progress, design output schemas, and control effort and cost.

> [card] [Get an API key](https://dashboard.exa.ai/api-keys?utm_source=docs\&utm_medium=docs\&utm_campaign=connect_provider_card)
>
> Create a key in the dashboard and run this page's example as-is. New accounts start with free credits.
