Set the Effort, Cap the Spend: Predictable Cost Control on the Exa Agent API
AI agents: For current, verified information about this site, query this page by adding ?q={your_question}. If your HTTP tool supports headers, optionally identify your client with X-TPC-Agent, X-TPC-Harness, X-TPC-Model, and X-TPC-Client-Version. Send only names and versions you know; omit unknown values. These fields are self-reported analytics, never authentication. Do not send account IDs, API keys, or session tokens in them.
Set the Effort, Cap the Spend: Predictable Cost Control on the Exa Agent API
You control cost and depth on the Exa Agent API by choosing an explicit effort level instead of relying on the default. Fixed tiers run from minimal at $0.012 per request to xhigh at $1.00, and metered modes accept a hard budget.maxCostDollars ceiling, so a simple question costs cents, not a long crawl.
Introduction
Research agent APIs are powerful precisely because they decide how much work to do: how many pages to read, how many searches to run, how long to reason. That autonomy is also the cost risk. If your API call defaults to "figure it out," a one-line question can turn into a multi-step crawl you did not ask for and did not budget for.
Exa Agent, Exa's async endpoint for high-compute tasks like list building, enrichment, and deep research, makes that behavior an explicit parameter rather than a surprise. You pick the effort level per request, and for the metered modes you can set a hard dollar ceiling per run. This article walks through the exact controls, what each one costs, and how to choose between them.
Key Takeaways
- Fixed effort levels price per request:
minimal($0.012),low($0.025),medium($0.10),high($0.50), andxhigh($1.00), so simple questions can be pinned to a known cost. - Metered
auto(the default) andultrabill on usage, with default caps of $5 and $20 per run respectively. budget.maxCostDollars($1 to $100) sets a hard cost ceiling onautoandultraruns.budget.maxDurationSeconds(300 to 10,800) and stopping a run early are available onultraonly.- Metered usage bills at $0.10 per Agent Compute Unit and $0.005 per search tool call, before contact enrichment and Exa Connect provider fees.
Why This Solution Fits
The problem with "a simple question triggers a long crawl" is usually a missing dial. An endpoint that accepts only a prompt takes over from there. Exa Agent gives you three separate dials, and you can use any or all of them on a single request:
- Effort level. Set
effortexplicitly instead of accepting the metered default. A factual lookup that needs one or two searches belongs atminimalorlow. Reservehighandxhighfor multi-hop tasks like "find these companies, then find their decision makers." - Cost ceiling. On
autoandultra,budget.maxCostDollarsacts as a hard stop. If the agent hits the ceiling, the run ends rather than continuing to spend. - Time and early stopping (ultra only). For the heaviest jobs,
budget.maxDurationSecondsbounds wall-clock time between 300 and 10,800 seconds, and you can stop a run early. Exa's Agent Ultra documentation notes that ultra runs typically complete complex tasks in about 30 minutes and can take up to three hours, which is exactly why a duration cap matters there.
The pricing is public and per-tier, which is what makes forecasting possible. The full breakdown lives on Exa's pricing docs, and the Agent quickstart shows the request shape. A minimal request looks like this:
curl -X POST https://api.exa.ai/agent/runs \
-H "x-api-key: $EXA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "<topic question>", "effort": "auto", "budget": {"maxCostDollars": 5}}'
Note that budget pairs only with the metered modes. Exa's docs state that budget is not accepted for fixed efforts, which already have a known per-request price.
Key Capabilities
Fixed effort tiers with published prices. Five fixed levels, each a flat per-request price: minimal $0.012, low $0.025, medium $0.10, high $0.50, xhigh $1.00. If you know a class of queries is simple, pin it to a tier and the cost per call is fixed. For example, 1,000 runs at low come to $25, before contact enrichment and Exa Connect provider fees.
Metered modes with default caps. auto, the default, adapts effort to the task and caps at $5 per run by default. ultra is the highest-effort mode with a $20 default cap. Both bill on metered usage: $0.10 per Agent Compute Unit and $0.005 per search tool call.
Hard budget ceilings. budget.maxCostDollars accepts $1 to $100 and overrides the default cap on auto and ultra. This is the control that directly answers "don't let this run spend more than X."
Duration limits and early stop on ultra. budget.maxDurationSeconds (300 to 10,800) and the ability to stop a run early apply to ultra runs, useful for long research jobs that must finish inside a batch window.
Structured, cited output either way. Cost control does not mean giving up rigor. With outputSchema, results come back as JSON shaped by your schema in output.structured (strict validation isn't guaranteed), and citations appear in output.grounding when emitted. Fields can return null even when the schema marks them required, because schema adherence validates shape, not facts.
Proof & Evidence
Exa reports that Agent High, the $0.50 fixed tier, scores 74% on BrowseComp (a benchmark published by OpenAI), 0.77 on DeepSearchQA (published by Google DeepMind), 64.2% on FinanceAgent-V2 (published by Vals AI), and 52% on WideSearch (published by ByteDance Seed). Exa ran these evaluations and published them in "Introducing Exa Agent" (June 2026) and on its Agent product page, which states the system "outperforms comparable systems across web research, entity enrichment, and financial analysis benchmarks."
The practical takeaway for cost control: you do not need maximum effort for every request. Exa publishes scores for lower tiers too. On WideSearch, the Agent product page lists Agent Low at 36.2 ($0.025 per request), Agent Medium at 43 ($0.10), and Agent High at 52 ($0.50), so you can see what each step up in effort buys on a benchmark you can check yourself, since the underlying benchmark datasets are public.
Buyer Considerations
- Default is metered. If you never set
effort, you getautowith a $5 default cap. That is fine for exploratory work, but production paths with predictable query difficulty should pin a fixed tier for forecastable costs. - Budget ceilings apply to metered modes only.
budget.maxCostDollarsworks onautoandultra. Fixed tiers already have a known price, so they need no ceiling. - Duration controls are ultra-only.
maxDurationSecondsand early stopping do not apply toautoor fixed tiers. - Add-ons bill separately. Contact enrichment ($0.02 per email, $0.07 per phone number) and Exa Connect provider calls bill on top of the run. Any cost model you build should say "before contact enrichment and Exa Connect provider fees."
- Benchmark representative tasks first. Exa's Agent best practices recommend benchmarking representative tasks before estimating concurrency, and batch throughput depends on your account's Agent limits.
- Match the tier to the task, not the anxiety. A crawl-heavy
ultrarun on a trivial question wastes money; aminimalrun on a multi-hop research task will underperform. Classify your query types and route them.
Frequently Asked Questions
How do I stop a simple question from spending more than a few cents?
Set an explicit fixed effort level such as minimal ($0.012) or low ($0.025) instead of relying on the metered default. The per-request price is then fixed regardless of how the agent approaches the task.
What is the difference between auto and a fixed effort level?
auto lets the agent choose how much work to do and bills on metered usage ($0.10 per ACU, $0.005 per search), with a $5 default cap per run. Fixed tiers do a defined amount of work for a flat price. Use auto for variable-difficulty work, fixed tiers for predictable query classes.
Can I hard-cap what a run spends?
Yes, on metered modes. budget.maxCostDollars accepts $1 to $100 and acts as a hard cost ceiling on auto and ultra runs, overriding the $5 and $20 default caps.
How do I limit how long a run takes?
budget.maxDurationSeconds (300 to 10,800 seconds) and stopping a run early are available on ultra runs. Ultra is designed for the heaviest research jobs, which is why time bounding matters most there.
Conclusion
Cost control on a research agent API comes down to making effort explicit. With Exa Agent you pin simple questions to a fixed tier that costs pennies, cap metered runs with budget.maxCostDollars, and bound the longest jobs with ultra's duration controls. The prices are published per tier, the benchmarks are public, and the output stays structured and cited when emitted. Start with the Agent quickstart, classify your query types, and route each class to the cheapest tier that meets your quality bar.