# Affiliate.com product catalog search

Affiliate.com data through the Exa Agent: product search across merchants and affiliate networks with live pricing, brands and direct merchant links. Needs query. Served by Exa.

Affiliate.com data through the Exa Agent: product search across merchants and affiliate networks with live pricing, brands and direct merchant links. Ask in natural language and, for structured output, pass output_schema naming the fields you want from Affiliate.com. Examples: "Wireless noise-cancelling headphones under $300: product, brand, price, merchant, link." "The cheapest merchant for the Sony WH-1000XM6 right now." Price: metered Exa usage plus any attached data partner charges. An explicit spending limit is sent to Exa (default $1); only auto and ultra effort are supported so that the limit applies. Actual costDollars.total is billed. Asynchronous results are available through exa/agent-run-get.

- Tool ID: `exa/affiliate`
- Name in the catalog: Affiliate.com via Exa: product catalog search with live prices and merchant links
- Provider: [Exa](/providers/exa.md)
- Capability: [Product catalogs & food data](/tools/ecommerce/product-catalogs.md)
- Price: usage based, the maximum is shown before a run
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

Billed at the cost the provider reports for the call, never above $5. Your agent sees the maximum before running.


```json
{
  "model": "reported",
  "costPath": "costDollars.total",
  "requireCost": true,
  "maxUsdField": "max_cost_usd",
  "maxUsdDefault": 1,
  "maxUsdCap": 5,
  "headroom": 1
}
```

Pricing source: [https://exa.ai/docs/reference/agent-api/connect/overview](https://exa.ai/docs/reference/agent-api/connect/overview). Metered auto/ultra effort and attached partner usage, within budget.maxCostDollars; current source pricing is monitored. Default provider budget $1..

Price verification date: 2026-10-08.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "What you want from Affiliate.com, in natural language. Be explicit about the entities (domains, tickers, company names, routes, dates) and the fields you expect."
    },
    "output_schema": {
      "type": "object",
      "description": "Optional JSON Schema for the structured answer (returned in output.structured). Name each field after the Affiliate.com data you want, e.g. {\"type\":\"object\",\"required\":[\"domain\",\"monthlyVisits\"],\"properties\":{\"domain\":{\"type\":\"string\"},\"monthlyVisits\":{\"type\":\"number\",\"description\":\"from Affiliate.com\"}}}."
    },
    "effort": {
      "type": "string",
      "enum": [
        "auto",
        "ultra"
      ],
      "default": "auto",
      "description": "Metered effort with an enforced provider budget."
    },
    "max_cost_usd": {
      "type": "number",
      "minimum": 1,
      "maximum": 5,
      "default": 1,
      "description": "Maximum USD spend sent to Exa and reserved before dispatch. Actual reported consumption is billed."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "exa/affiliate",
  "input": {
    "query": "Three wireless headphones under 100 USD with merchant and price, from Affiliate.com.",
    "effort": "auto",
    "max_cost_usd": 1
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

This tool uses deferred settlement. Follow its returned task/run instructions; preserve the existing reservation until the result is reconciled.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://exa.ai/docs/reference/agent-api/connect/affiliatecom)

[REST inspection](https://api.agentik.cc/v1/tools/exa/affiliate) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/exa/affiliate) · [Agent index](/llms.txt)
