Exa vs Brave Search API in 2026
One SpecStream key answers both calls.
On Nov 10, 2026, Exa charges $7 per 1,000 searches on auto and $4 on lite, plus $1 per 1,000 results above 10. Brave charges $5 per 1,000 requests and caps the Search plan at 50 queries per second.
SpecStream answers both calls with one key. Exa code points at https://api.specstream.ai/exa, Brave code at https://api.specstream.ai, and each gets its own JSON back. Every search of up to 10 results costs $0.005.
SpecStream is the live web data engine. Its Search API scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks, shown on the benchmarks page.
New accounts get $10 of credit, no card. It covers 2,000 searches.
SpecStream, Exa and Brave Search API side by side
| SpecStream | Exa | Brave Search API | |
|---|---|---|---|
| Your code | Runs as written. Exa calls go to POST https://api.specstream.ai/exa/search with the key in x-api-key. Brave calls go to GET https://api.specstream.ai/res/v1/web/search with the key in X-Subscription-Token. One key answers both | POST https://api.exa.ai/search with an Exa key in x-api-key or as a Bearer token | GET https://api.search.brave.com/res/v1/web/search with a Brave key in X-Subscription-Token |
| What comes back | Each API's own JSON. Exa: results[] with id, url, title, publishedDate, text when asked, and costDollars.total. Brave: query, mixed and web.results[] with title, url and description | results[] with the title, URL, published date and author of each result, and text, highlights or summary when contents asks for them | A web.results array with a title, a URL and a description for each result, and up to 5 extra excerpts per result |
| Price per 1,000 searches | $5 for up to 10 results, on either route and whatever type you send | $7 on auto and fast, $4 on lite, for up to 10 results. Each result above 10 adds $1 per 1,000 results | $5 per 1,000 requests on the Search plan |
| Results per call | Up to 100 on the Exa route: numResults: 100 costs $0.059. Up to 20 on the Brave route: count=20 costs $0.011, and a call with no count returns 10 for $0.005 | numResults from 1 to 100 | Up to 20 a request, 20 by default, with offset from 0 to 9 |
| The text of each page | contents.text on the Exa route fills each result's text in the price of the search. The Extract API reads any page, PDF, Word or Excel file at $0.80 per 1,000 pages | Contents costs $1 per 1,000 pages per content type | The description and up to 5 extra excerpts that come with each result |
| What answers the call | The whole live web, read at the moment of the call. 97.9 F-score on all 1,000 SimpleQA Verified questions (978 correct) | Exa's own index, which tracks over 2 trillion URLs and serves 100 billion pages as of October 2026 | Brave's own search index. Operators are written inside q |
| Rate | No limit per key and no daily limit. A busy call gets 429 with Retry-After and is not charged | One API call is one request, priced per 1,000 requests | 50 queries per second on the Search plan |
| Free to start | $10 of credit, no card: 2,000 searches. Credit you buy never expires | $10 in credits on sign-up, reset to $10 on the first of every month, no payment method | $5 in free credits every month |
| Every match as rows | Deep Search: a request in plain words returns every match on the live web as rows that meet each condition you wrote, at 5¢, 15¢ or $1 a row, plus 5¢ for an email and 15¢ for a phone. The most a run can cost is quoted before it starts, and a saved request reruns hourly to yearly with each row labeled changed, unchanged or no longer matching | Agent: $0.012 to $1.00 a request at a fixed effort. Monitors run scheduled searches at $2 per 1,000 requests | One request returns up to 20 results for one query, and more_results_available says whether another page exists |
| MCP and API | MCP server at https://api.specstream.ai/mcp, REST API, Python and TypeScript SDKs, a CLI and A2A. An agent can buy one request with no account, by card or in USDC | Hosted MCP server at https://mcp.exa.ai/mcp, the API, and the exa-py and exa-js SDKs | A REST API paid with prepaid credits. Also sold on AWS Marketplace as the Data for AI plan at $0.005 a request |
Why Exa and Brave users move to SpecStream
Both calls answered on one key
You do not have to pick one API and rewrite the other. Each call keeps its path, its body and its parser. The address changes, and the key.
# Exa: before
curl -X POST https://api.exa.ai/search -H "x-api-key: $EXA_KEY" -H "Content-Type: application/json" -d '{"query": "open source vector databases", "numResults": 10}'
# Exa: after
curl -X POST https://api.specstream.ai/exa/search -H "x-api-key: $SPECSTREAM_KEY" -H "Content-Type: application/json" -d '{"query": "open source vector databases", "numResults": 10}'
# Brave: before
curl "https://api.search.brave.com/res/v1/web/search?q=open+source+vector+databases&count=10" -H "X-Subscription-Token: $BRAVE_KEY"
# Brave: after
curl "https://api.specstream.ai/res/v1/web/search?q=open+source+vector+databases&count=10" -H "X-Subscription-Token: $SPECSTREAM_KEY"The parameter and field tables are in the Exa guide and the Brave Search API guide.
What stays the same
On the Exa route, query, numResults (1 to 100), includeDomains, excludeDomains, includeText, excludeText, startPublishedDate, endPublishedDate and contents.text work as on Exa, and every type costs the same. On the Brave route, q, count (1 to 20), offset (0 to 9) and freshness work as on Brave, and operators inside q such as site: shape the search.
Not returned: Exa's score, summary, image and favicon, and author is null. Brave's extra_snippets and summarizer key; page_age comes back only on results that carry a date.
$5 per 1,000 searches on both routes, from credit that does not expire
Exa's price depends on the search type and the number of results, and Brave's free credits arrive as $5 a month. SpecStream charges one price on both routes: $0.005 for up to 10 results, and each started block of 10 more adds $0.006. There is no monthly plan, credit you buy never expires, and a call stopped by a 429 charges nothing.
The most accurate web search API in the world
The SpecStream Search API scores 97.9 F-score on all 1,000 official SimpleQA Verified questions, 978 of them correct, and 64.0 item F1 and 43.4 row F1 on all 200 official WideSearch tasks. The Extract API scores 0.908 F1 on WCXB. Every score and its method is on the benchmarks page.
About one second a search, with no limit per key
Every drop-in route runs the fast search unless the call asks for page text or results past the first ten. On November 9, 2026 production took 1 to 20 fast searches a second and answered 718 of 720: the median was 0.82 s at 1 search a second and 1.07 s at 20 a second, and the 95th percentile stayed between 1.09 and 1.73 s. There is no limit per key and no daily limit; a busy call gets a 429 with Retry-After and is not charged.
Zero retention on any key
Set zero_retention when you create a key, or later. A search made with that key keeps no request text and no answer after the reply: it is not in the history, its answer is not reused for another call, and its log lines carry neither.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "production", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'Search, pages and rows on one key
A search API returns links and snippets, and your product still has to read the pages and build its records. On SpecStream the same key reads up to 20 pages or documents a call with the Extract API at $0.80 per 1,000 pages, maps and crawls a site at the page price, and runs Deep Search, which returns every match on the live web as structured rows at 5¢, 15¢ or $1 a row. The most a run can cost is approved before it starts. Saved requests rerun hourly to yearly, with each row labeled changed, unchanged or no longer matching, and new rows arrive in Slack, a sheet, a CRM or a signed webhook.
Other Exa and Brave Search API alternatives
Tavily
A search API for agents billed in credits: a basic search is 1 credit and an advanced search 2, at $0.008 a credit pay as you go, with 1,000 free credits every month. SpecStream answers Tavily's call at https://api.specstream.ai/tavily for $0.005 a search.
Serper
Google results sold as prepaid credit packs, from $1.00 per 1,000 on the 50k pack, and the credits are valid for 6 months. SpecStream answers Serper's call at https://api.specstream.ai/serper, and its credit never expires.
Parallel
Search, Extract and Task APIs priced by their own units. Web search starts at $1 per 1,000 requests, and the Developer plan allows 600 Search requests a minute. SpecStream answers Parallel's search call at https://api.specstream.ai/parallel with no limit per key.
Firecrawl
Search and page endpoints billed in credits: a search costs 2 credits per 10 results, and the Standard plan is $99 a month for 100,000 credits. SpecStream answers Firecrawl's v2 calls at https://api.specstream.ai/firecrawl, with search at $5 per 1,000 and pages at $0.80 per 1,000.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move Exa and Brave code to SpecStream
1. Create a key under Agents & API in the workspace. A new account gets $10 of credit, no card, which covers 2,000 searches.
2. Point Exa code at https://api.specstream.ai/exa and put the SpecStream key in x-api-key. In the exa-py SDK, pass base_url="https://api.specstream.ai/exa".
import requests
reply = requests.post(
"https://api.specstream.ai/exa/search", # was https://api.exa.ai/search
headers={"x-api-key": SPECSTREAM_KEY},
json={"query": "open source vector databases", "numResults": 10},
timeout=30,
).json()
for result in reply["results"]:
print(result["title"], result["url"], result["publishedDate"])3. Point Brave code at https://api.specstream.ai and send the SpecStream key in X-Subscription-Token. In crewAI, pass search_url="https://api.specstream.ai/res/v1/web/search" to BraveSearchTool.
const params = new URLSearchParams({ q: "open source vector databases", count: "10" });
const reply = await fetch(`https://api.specstream.ai/res/v1/web/search?${params}`, {
headers: { "X-Subscription-Token": process.env.SPECSTREAM_API_KEY },
}).then((response) => response.json());
for (const result of reply.web.results) console.log(result.title, result.url, result.description);4. On a 429, wait the seconds in Retry-After and send the call again; nothing was charged. Both routes spend from one balance, inside the spending limit you set on the key.
Frequently asked questions
Something we didn't answer? Talk to a human
Is Exa better than Brave Search API?
Exa vs Brave Search API pricing: what does each cost?
auto and $4 on lite for up to 10 results, plus $1 per 1,000 results above 10. Brave costs $5 per 1,000 requests. SpecStream costs $5 per 1,000 searches of up to 10 results on both routes.Can I use both Exa and Brave code?
https://api.specstream.ai/exa/search and Brave calls to https://api.specstream.ai/res/v1/web/search, each answered in its own JSON and billed from one balance at $0.005 a search.Which fields does SpecStream not return?
score, summary, image and favicon, and author is null. On the Brave route, extra_snippets and the summarizer key, and page_age only when a result carries a date.Do Exa's and Brave's free credits roll over?
How many searches a second can I send?
Sources
SpecStream wrote this page. Each rival figure comes from that company's own page.
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 10, 2026
- Exa search referenceexa.ai/docs/reference/search.md, read Nov 10, 2026
- Exa FAQexa.ai/docs/admin/faqs.md, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- Brave Web Search documentationapi-dashboard.search.brave.com/app/documentation/web-search/get-started, read Nov 10, 2026
- Brave Search API on AWS Marketplaceaws.amazon.com/marketplace/pp/prodview-qjlabherxghtq, read Nov 10, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 10, 2026
- Serperserper.dev/, read Nov 10, 2026
- Parallel pricingparallel.ai/pricing, read Nov 10, 2026
- Firecrawl pricingfirecrawl.dev/pricing, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




