How to get your Exa API usage, balance and spend programmatically
What the Exa API exposes
| Signal | Exa |
|---|---|
| Balance | No |
| Spend history | No |
| Cost breakdown | No |
| Plan and quota | No |
| Cost on each response | Yes, the exact USD |
| Rate-limit headers | None |
| Credential | API key |
Call it yourself
Credential. A normal Exa API key, sent as x-api-key. Argus validates it with a one-result search.
What each response carries
{
"requestId": "b5947044c4b78efa9552a7c89b306d95",
"results": [ … ],
"costDollars": { "total": 0.005 }
}Trimmed to the fields Argus reads. Values are examples.
No billing API, so measure from your side
Argus tracks Exa from the SDK: costDollars.total on every response is summed into spend. Exa documents a per-key usage endpoint on admin-api.exa.ai (total_cost_usd) for team admins; Argus doesn't poll it yet.
Gotchas
- Hard stop at a $0 balance (402) unless auto-recharge is on.
- A bigger balance doesn't raise rate limits, and responses carry no rate-limit headers.
How Exa charges
Pure pay-as-you-go on a prepaid dollar balance, unit-priced per endpoint. No plans or minimums; free tier up to 20k requests/mo.
Free allowance. 20,000 a month. Plus $10 onboarding credits.
At zero. 402. Hard stop at $0 balance unless auto-recharge is on.
- 10 requests per second, per key. /contents 100 QPS. Balance does not raise limits. No headers.
Or let Argus track it
Paste the key once. Argus keeps the ledger, and your coding agent reads it through the MCP server.
- With the SDK, records the cost Exa reports on each response, so every call is itemized at its exact price.
- Emails you on low balance, days to zero, a spend spike, or projected overage.
- Hands all of it to your coding agent over MCP, so it can ask what a run cost or how much runway is left without leaving the editor.
> what has exa cost today, and how long until it runs out?
get_overview → exa: mtd spend, burn per day, days to zero
get_request_costs { "provider": "exa", "limit": 25 }
get_advisories → credits_low, spend_spike, rate_limit_low …Questions
- Does Exa have an API for its balance?
- Exa has no public balance endpoint a normal key can read. Each /search response carries costDollars.total, so per-call cost is exact.
- Can I get Exa spend per day from the API?
- Not as a series. Each response reports its own cost, so sum it per day yourself, or let Argus do it.
- What happens when Exa credits run out?
- Requests fail with HTTP 402. Hard stop at $0 balance unless auto-recharge is on. Auto-recharge is available.
- What key does Argus need for Exa?
- A normal Exa API key, sent as x-api-key. Argus validates it with a one-result search.
Related
Pricing and limits verified 2026-07-20 against exa.ai/pricing, exa.ai/docs/reference/rate-limits. Endpoints are the ones the Argus Exa connector calls.
Connect a provider key, point Claude Code or Cursor at the Argus MCP server, and ask what the last run cost.