Free
$0
Free
$10 credits/month (+$10 one-time onboarding bonus) per docs; live app holds them at $0 until a non-prepaid card is verified
Plan details
402 Payment Required when exhausted
AI-native web search API with its own index: search, page contents, cited answers, scheduled monitors, async research Agent, and Websets for verified entity lists. Best for agent web search and RAG grounding with token-efficient contents.
The actions you pay for, as Exa prices them.
| Action | Cost | Per |
|---|---|---|
| /search lite or instant | $4 | 1k requests (up to 10 results) |
| /search auto or fast | $7 | 1k requests |
| /search deep-lite or deep | $12 | 1k requests |
| /search deep-reasoning | $15 | 1k requests |
| Results above 10 | $1 | 1k results |
| AI page summary | $1 | 1k pages (docs pricing table shows no summary price for lite search; public pricing page lists $1 for Lite too) |
| /contents | $1 | 1k pages per content type (text, highlights, summary billed separately) |
| /answer | $5 | 1k requests |
| Action | Cost | Per |
|---|---|---|
| /monitors | $15 | 1k requests |
| Agent fixed effort | $0.012 / $0.025 / $0.10 / $0.50 / $1.00 | run (minimal/low/medium/high/xhigh) |
| Agent metered compute | $0.10 | ACU |
| Agent search tool call | $0.005 | search |
| Agent email enrichment | $0.02 | email found |
| Agent phone enrichment | $0.07 | phone found |
| Exa Connect: Fiber.ai | $0.02 | provider credit |
| Startup/education grant | up to $1,000 free credits | one-off |
| Exa Connect: Baselayer | $0.10-$4.00 | order, depending on operation |
| Keyless /search via x402 (USDC) | $0.007 | search (HTTP 402 payment offer returned to a keyless call) |
US dollars, as Exa's pricing page shows them on 25 Oct 2026. Monthly and annual billing are shown apart.
Free tier DOCS: $10 credits available the day you sign up, reset to $10 on the 1st of each month (no rollover, first team only), plus a one-time $10 bonus for completing dashboard onboarding; 'No payment method required'. LIVE APP: plan reads 'Free $10 credits per month' but balance is $0.00 with banner 'Your free credits are pending payment verification. Add a non-prepaid payment method that hasn't been used to unlock another team's credits.' The live app wins for what a new user actually gets: in practice the free credits need a card. Free tier excludes Exa Snapshot.
$0
Free
$10 credits/month (+$10 one-time onboarding bonus) per docs; live app holds them at $0 until a non-prepaid card is verified
402 Payment Required when exhausted
One-off pack
Prepaid dollar credits via Stripe (card or bank account), no subscription or minimum; auto recharge $5-$10,000 per top-up with optional monthly cap
Per-request rates; auto recharge optional
Custom quote
Custom volume pricing, postpaid invoicing, up to 1,000 results/search, ZDR, SLAs
Websets credits, separate from API credits; rates and plan prices only on logged-in websets.exa.ai/billing (exa.ai/websets/pricing and websets.exa.ai/pricing return 404 on 2026-10-25).
Free plan caps a webset at 25 verified results.
Team-wide QPS across all keys (docs): /search, /answer, /chat/completions 10 QPS; deep-lite/deep/deep-reasoning 5 QPS; /contents 100 QPS; /agent/runs and /responses 5 QPS + 50 active runs (each run start counts as 2 requests; polling GETs free); /websets/* 20 QPS.
| Limit | Free | Pay as you go | Enterprise | MCP keyless |
|---|---|---|---|---|
| Limit | 10 QPS search/answer, 50 concurrent agent runs; dashboard shows Contents 110 QPS (docs: 100) | 10 QPS; auto-raised to 25 QPS for 90 days after PURCHASING $1,000 credits within any 30 days (pricing page: 'Up to 25 Search QPS') | Custom QPS and concurrency | 3 QPS and 150 calls/day (changelog entry 'Highlights, content freshness, and MCP updates'); agent_run not available keyless |
The live dashboard Usage page shows Contents 110 QPS (docs say 100). 429 with RATE_LIMIT_EXCEEDED or CONCURRENCY_LIMIT_REACHED; honour Retry-After.
Exa uses API key. The steps below follow Exa's own docs.
curl -X POST "https://api.exa.ai/search" \
-H "Authorization: Bearer $EXA_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'| What | Where |
|---|---|
| Documentation | exa.ai/docs |
| API reference | exa.ai/docs/reference |
| OpenAPI spec | exa.ai/docs/exa-spec.yaml |
| llms.txt | docs.exa.ai/llms.txt |
| Changelog | exa.ai/docs/changelog |
| Base URL | https://api.exa.ai |
| MCP server | https://mcp.exa.ai/mcp |
| SDKs | exa-py (Python), exa-js (JavaScript/TypeScript), OpenAI SDK compatibility, Agent skill: npx skills add exa-labs/agent-skills |
Other Research and scraping tools in this directory, each with its own review.
Best for cheap bulk SERP pulls via the Standard queue.
DataForSEO API reviewBest for row-level account/contact research and enrichment with per-field citations and confidence.
Parallel AI API reviewBest for agent web search with LLM-ready snippets at 1-2 credits per query.
Tavily API reviewFour things to settle first, each read off Exa's own pages.
Tell us what you want Exa to do in your stack. We will show you how we would wire it into your data, outbound or CRM, and what we would check first.
Read from exa.ai/docs/admin/pricing, exa.ai/docs/reference and exa.ai/docs/admin/billing. Verified 25 Oct 2026.
| Method | Path | What it does | Cost |
|---|---|---|---|
| POST | /search | Web search (types: lite, auto, fast/instant legacy, deep-lite, deep, deep-reasoning); optional contents, categories company/people/news/etc. | lite/instant $4 per 1k requests; auto/fast $7 per 1k; deep-lite/deep $12 per 1k; deep-reasoning $15 per 1k; base covers 10 results, +$1 per 1k extra results; AI summaries +$1 per 1k pages |
| POST | /contents | Page contents for known URLs (text, highlights, summary) | $1 per 1k pages per content type; summary +$1 per 1k pages |
| POST | /answer | LLM answer with citations | $5 per 1k requests |
| POST | /findSimilar | Find links similar to a URL | Not stated |
| POST | /monitors | Create a scheduled search monitor (webhook delivery) | $15 per 1k monitor runs, +$1 per 1k results above 10, +$1 per 1k summaries |
| GET | /monitors | List monitors | Not stated |
| POST | /monitors/batch | Batch action on monitors | Not stated |
| GET | /monitors/{id} | Get a monitor | Not stated |
| PATCH | /monitors/{id} | Update a monitor | Not stated |
| DELETE | /monitors/{id} | Delete a monitor | Not stated |
| POST | /monitors/{id}/trigger | Trigger a monitor run now | $15 per 1k requests |
| GET | /monitors/{id}/runs | List monitor runs | Not stated |
| GET | /monitors/{id}/runs/{runId} | Get a monitor run | Not stated |
| POSTasync | /agent/runs | Start an async Exa Agent run (research, list building, enrichment) | Fixed effort: minimal $0.012, low $0.025, medium $0.10, high $0.50, xhigh $1.00 per run; auto/ultra metered: $0.10/ACU, $0.005/search call, $0.02/email, $0.07/phone; default caps $5 (auto) / $20 (ultra) |
| GET | /agent/runs | List agent runs | Not stated |
| GETasync | /agent/runs/{id} | Get an agent run | Not stated |
| DELETE | /agent/runs/{id} | Delete an agent run | Not stated |
| POST | /agent/runs/{id}/cancel | Cancel an agent run | Not stated |
| POST | /agent/runs/{id}/stop | Stop an agent run | Not stated |
| GETasync | /agent/runs/{id}/events | List agent run events | Not stated |
| POSTasync | /batches | Create a batch of /search or /agent/runs requests, results as JSONL (beta, header Exa-Beta: batches-2026-06-06) | Not stated |
| GET | /batches | List batches | Not stated |
| GETasync | /batches/{id} | Get a batch | Not stated |
| DELETE | /batches/{id} | Delete a batch | Not stated |
| POST | /batches/{id}/cancel | Cancel a batch | Not stated |
| GET | /websets/v0/teams/me | Get team info (incl. Websets concurrency limits) | Not stated |
| POSTasync | /websets/v0/websets | Create a Webset | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| GET | /websets/v0/websets | List Websets | Not stated |
| GET | /websets/v0/websets/{id} | Get a Webset | Not stated |
| POSTasync | /websets/v0/websets/{id} | Update a Webset | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| DELETE | /websets/v0/websets/{id} | Delete a Webset | Not stated |
| POST | /websets/v0/websets/{id}/cancel | Cancel a running Webset | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| POSTasync | /websets/v0/websets/preview | Preview a Webset | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| POSTasync | /websets/v0/websets/{webset}/searches | Create a Webset search | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| GET | /websets/v0/websets/{webset}/searches/{id} | Get a Webset search | Not stated |
| POST | /websets/v0/websets/{webset}/searches/{id}/cancel | Cancel a Webset search | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| POSTasync | /websets/v0/websets/{webset}/enrichments | Create an enrichment | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| PATCH | /websets/v0/websets/{webset}/enrichments/{id} | Update an enrichment | Not stated |
| GET | /websets/v0/websets/{webset}/enrichments/{id} | Get an enrichment | Not stated |
| DELETE | /websets/v0/websets/{webset}/enrichments/{id} | Delete an enrichment | Not stated |
| POST | /websets/v0/websets/{webset}/enrichments/{id}/cancel | Cancel an enrichment | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| GET | /websets/v0/websets/{webset}/items | List Webset items | Not stated |
| GET | /websets/v0/websets/{webset}/items/{id} | Get an item | Not stated |
| DELETE | /websets/v0/websets/{webset}/items/{id} | Delete an item | Not stated |
| POSTasync | /websets/v0/monitors | Create a Webset monitor | Not stated |
| GET | /websets/v0/monitors | List Webset monitors | Not stated |
| GET | /websets/v0/monitors/{id} | Get Webset monitor | Not stated |
| PATCH | /websets/v0/monitors/{id} | Update Webset monitor | Not stated |
| DELETE | /websets/v0/monitors/{id} | Delete Webset monitor | Not stated |
| GET | /websets/v0/monitors/{monitor}/runs | List Webset monitor runs | Not stated |
| GET | /websets/v0/monitors/{monitor}/runs/{id} | Get Webset monitor run | Not stated |
| POSTasync | /websets/v0/imports | Create an import (CSV etc.) | Websets credits (separate from API credits); rates only on logged-in websets.exa.ai/billing |
| GET | /websets/v0/imports | List imports | Not stated |
| GET | /websets/v0/imports/{id} | Get import | Not stated |
| PATCH | /websets/v0/imports/{id} | Update import | Not stated |
| DELETE | /websets/v0/imports/{id} | Delete import | Not stated |
| POSTasync | /websets/v0/webhooks | Create a webhook | Not stated |
| GET | /websets/v0/webhooks | List webhooks | Not stated |
| GET | /websets/v0/webhooks/{id} | Get a webhook | Not stated |
| PATCH | /websets/v0/webhooks/{id} | Update a webhook | Not stated |
| DELETE | /websets/v0/webhooks/{id} | Delete a webhook | Not stated |
| GET | /websets/v0/webhooks/{id}/attempts | List webhook attempts | Not stated |
| GET | /websets/v0/events | List events | Not stated |
| GET | /websets/v0/events/{id} | Get an event | Not stated |
| POST | https://admin-api.exa.ai/team-management/api-keys | Create API key | free |
| GET | https://admin-api.exa.ai/team-management/api-keys | List API keys | free |
| GET | https://admin-api.exa.ai/team-management/api-keys/{id} | Get API key | free |
| PUT | https://admin-api.exa.ai/team-management/api-keys/{id} | Update API key (incl. per-key budget / rate limit) | free |
| DELETE | https://admin-api.exa.ai/team-management/api-keys/{id} | Delete API key | free |
| GET | https://admin-api.exa.ai/team-management/api-keys/{id}/usage | Historical usage per key | free |
No endpoint matches that filter.