# Exa research run

Exa agent run (multi-step research, list building, enrichment). Needs query.

Exa agent run (multi-step research, list building, enrichment), by Exa. Create an asynchronous Agent run. Asynchronous: returns a run id; poll exa/agent-run-get for the output, then GET /v1/runs/{run_id} shows the final price. Runs end within one hour. 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/agent-run`
- Name in the catalog: Exa agent run (multi-step research, list building, enrichment)
- Provider: [Exa](/providers/exa.md)
- Capability: [Deep research & cited answers](/tools/web-search/deep-research.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 $100. Your agent sees the maximum before running.


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

Pricing source: [https://exa.ai/pricing](https://exa.ai/pricing). 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": {
    "Accept": {
      "description": "Set to `text/event-stream` to receive server-sent events.",
      "type": "string",
      "enum": [
        "application/json",
        "text/event-stream"
      ]
    },
    "Exa-Beta": {
      "description": "Comma-separated beta feature tokens for opting into experimental features.",
      "type": "string"
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Natural-language question or instructions for the request."
    },
    "systemPrompt": {
      "type": "string",
      "description": "Additional instructions that guide generated output or agent behavior. Use this for source preferences, novelty constraints, duplication constraints, or other behavior guidance."
    },
    "effort": {
      "type": "string",
      "enum": [
        "auto",
        "ultra"
      ],
      "default": "auto",
      "description": "Metered effort with an enforced provider budget."
    },
    "input": {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "description": "Any JSON value.",
              "oneOf": [
                {
                  "type": "null"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "number"
                },
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              ]
            },
            "description": "A JSON object record."
          },
          "description": "Records the agent should process or enrich."
        },
        "exclusion": {
          "type": "array",
          "items": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "description": "Any JSON value.",
              "oneOf": [
                {
                  "type": "null"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "number"
                },
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                }
              ]
            },
            "description": "A JSON object record."
          },
          "description": "Records or entities the agent should avoid returning."
        }
      },
      "description": "Records to process and records or entities to exclude from the answer."
    },
    "outputSchema": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "description": "Any JSON value.",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number"
              },
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {}
              },
              {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            ]
          },
          "description": "JSON Schema for validated structured output in `output.structured`. Fields unsupported by evidence may be returned as `null`. Supports draft-07, 2019-09, and 2020-12 via `$schema`."
        },
        {
          "type": "null"
        }
      ]
    },
    "previousRunId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "description": "Agent run ID. New run IDs are returned with the `agent_run_` prefix."
    },
    "metadata": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      },
      "description": "Caller-provided metadata stored with the run."
    },
    "dataSources": {
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "fiber",
              "financial_datasets",
              "similarweb",
              "baselayer",
              "affiliate",
              "particle",
              "jinko",
              "polymarket",
              "macrobond"
            ],
            "description": "Identifier of an Exa Connect data provider."
          }
        },
        "required": [
          "provider"
        ]
      },
      "description": "Exa Connect data providers to enable for the run. Each entry enables all of that provider's tools."
    },
    "budget": {
      "type": "object",
      "properties": {
        "maxCostDollars": {
          "type": "number",
          "minimum": 1,
          "maximum": 100,
          "default": 1,
          "description": "Maximum USD spend sent to Exa and reserved before dispatch. Actual reported consumption is billed."
        }
      },
      "additionalProperties": false,
      "required": [
        "maxCostDollars"
      ],
      "default": {
        "maxCostDollars": 1
      }
    }
  },
  "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/agent-run",
  "input": {
    "query": "In one sentence, what is the Model Context Protocol?",
    "effort": "auto",
    "budget": {
      "maxCostDollars": 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/overview)

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

---

[HTML page](/providers/exa/agent-run) · [Agent index](/llms.txt)
