Exa vs Parallel in 2026
One key answers both calls.
Exa charges $4 to $7 per 1,000 searches by search type and Parallel $1 to $5 by mode, each with its own request and its own JSON. SpecStream answers both calls, on their own paths, with one key.
Change https://api.exa.ai to https://api.specstream.ai/exa and https://api.parallel.ai to https://api.specstream.ai/parallel. Your Exa and Parallel code keeps its body and its parser, and both send the same SpecStream key in x-api-key.
A search of up to 10 results costs $0.005 on either path, in every mode. SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks, on the benchmarks page.
New accounts get $10 of credit, no card. It covers 2,000 searches.
SpecStream, Exa and Parallel side by side
| SpecStream | Exa | Parallel | |
|---|---|---|---|
| The call your code sends | Both, on one key. POST https://api.specstream.ai/exa/search in Exa's JSON and POST https://api.specstream.ai/parallel/v1/search in Parallel's JSON, with the SpecStream key in x-api-key | POST https://api.exa.ai/search with query, numResults and a search type, and an Exa key in x-api-key or as a Bearer token | POST https://api.parallel.ai/v1/search with search_queries and a mode, and a Parallel key in x-api-key |
| Price per 1,000 searches | $5 for up to 10 results, on both paths and in every Exa type and every Parallel mode, page text included | $4 on lite and $7 on auto and fast, for up to 10 results | $1 on turbo and fast, $5 on basic and advanced, the default, with 10 results included |
| More results in one call | Up to 100 on either path. Each started block of 10 more adds $0.006, so 100 results cost $0.059 | numResults from 1 to 100. Every result above 10 adds $1 per 1,000 results | max_results defaults to 10, and public modes cap results at 20. Additional results cost $1 per 1,000 |
| The text of each page | In the same search at no extra cost: Exa's contents.text and Parallel's excerpts. The Extract API reads any page at $0.80 per 1,000 pages | Contents costs $1 per 1,000 pages per content type | Extract costs $1 per 1,000 URLs. Excerpt length does not change the search price |
| Busy and failed calls | No limit per key and no daily limit. A busy call answers 429 in the API's own error form with Retry-After, and charges nothing | One API call to an endpoint is one request, priced per 1,000 requests | 600 searches a minute. 429 when rate limited, 402 for insufficient credit |
| Free to start | $10 of credit, no card, which covers 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 free monthly with a card on file, plus up to $80 at signup |
| Every match as structured 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 | Agent: $0.012 a request at minimal effort up to $1.00 at xhigh | FindAll: $0.25 a run plus $0.03 a match on base, up to $10.00 a run plus $1.00 a match on pro |
| Reruns | Save a request and it reruns hourly to yearly, with each row labeled changed, unchanged or no longer matching | Monitors run scheduled searches at $2 per 1,000 requests | Monitor reruns a query at $3 per 1,000 checks on lite and $10 on base |
| MCP and SDKs | MCP server, REST API, Python and TypeScript SDKs and a CLI. Exa's exa-py and Parallel's parallel-web SDK reach SpecStream through their base address setting | Hosted MCP server at https://mcp.exa.ai/mcp, and the exa-py and exa-js SDKs | Hosted MCP server, Python and TypeScript SDKs and a CLI |
Why teams choosing between Exa and Parallel use SpecStream
Keep both calls and change two lines
Your Exa call and your Parallel call keep their bodies, their headers and their parsers. Each one changes its address, and both carry the same key.
# Exa: was https://api.exa.ai/search
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}'
# Parallel: was https://api.parallel.ai/v1/search
curl -X POST https://api.specstream.ai/parallel/v1/search \
-H "x-api-key: $SPECSTREAM_KEY" -H "Content-Type: application/json" \
-d '{"search_queries": ["open source vector databases"], "mode": "fast"}'A team that has not chosen yet writes to either format and moves nothing later. The parameter by parameter tables are in the Exa migration guide and the Parallel migration guide.
What each path reads and returns
On /exa/search, query, numResults from 1 to 100, includeDomains, excludeDomains, includeText, excludeText, startPublishedDate, endPublishedDate and contents.text work as on Exa. The reply has requestId, results[] with id, url, title, publishedDate and text when asked, searchTime and costDollars.total. score, summary, image and favicon are not returned; the results arrive in rank order.
On /parallel/v1/search, search_queries, mode, advanced_settings.max_results up to 100, source_policy with include_domains, exclude_domains and after_date, the excerpt settings and session_id work as on Parallel. The reply has search_id, session_id and results[] with url, title, publish_date and excerpts. warnings and usage are not returned.
$5 per 1,000 searches in every mode, from credit that does not expire
Exa prices a search by its type and charges Contents per page and per content type. Parallel prices by mode, adds $1 per 1,000 extra results and stops public modes at 20 results. On SpecStream a search of up to 10 results is $0.005 on either path, with page text in the same call, and 100 results are $0.059. There is no monthly plan, a top-up 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 a 97.9 F-score on all 1,000 official SimpleQA Verified questions, with 978 correct. On WideSearch it scores 64.0 item F1 and 43.4 row F1 on all 200 official tasks, and the Extract API scores 0.908 F1 on WCXB. The scores and the method are at specstream.ai/benchmarks.
About one second a search, with no limit per key
Both paths run 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. 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. The charge keeps the account, the key, the request ID, the price and the time.
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, crawls and rows on the same key
The same key reads up to 20 pages a call with the Extract API at $0.80 per 1,000 pages, maps and crawls whole sites, and runs Deep Search, which returns every match on the live web as structured rows at 5¢, 15¢ or $1 a row. 10,000 rows with 5 facts each cost $500, and the most a run can cost is approved before it starts.
Other search APIs for AI agents
Tavily
Search for agents sold by credit: 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 own POST /search at https://api.specstream.ai/tavily, in Tavily's JSON, at $0.005 a search.
Brave Search API
Results from Brave's own index at $5 per 1,000 requests, with $5 in free credits every month and 50 queries a second. SpecStream answers Brave's GET /res/v1/web/search at https://api.specstream.ai with the key in X-Subscription-Token, at $5 per 1,000 searches.
Serper
Google results as prepaid credits, from $1.00 per 1,000 on the 50k pack, and credits valid for 6 months. SpecStream answers Serper's POST /search at https://api.specstream.ai/serper, and a SpecStream top-up never expires.
Firecrawl
Scrape, crawl and search by monthly credits: Hobby is $19 a month for 5,000 credits, and search costs 2 credits per 10 results. SpecStream answers Firecrawl v2 search and scrape at https://api.specstream.ai/firecrawl, at $0.005 a search and $0.0008 a page.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to run your Exa and Parallel calls on 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 each client at its SpecStream path and send the SpecStream key in x-api-key. In Python:
import requests
HEADERS = {"x-api-key": SPECSTREAM_KEY}
# Exa's call, was https://api.exa.ai/search
exa = requests.post(
"https://api.specstream.ai/exa/search",
headers=HEADERS,
json={"query": "open source vector databases", "numResults": 10},
timeout=30,
).json()
for result in exa["results"]:
print(result["title"], result["url"], result["publishedDate"])
# Parallel's call, was https://api.parallel.ai/v1/search
parallel = requests.post(
"https://api.specstream.ai/parallel/v1/search",
headers=HEADERS,
json={"search_queries": ["open source vector databases"], "mode": "fast"},
timeout=30,
).json()
for result in parallel["results"]:
print(result["title"], result["url"])3. In JavaScript:
const headers = { "x-api-key": process.env.SPECSTREAM_KEY, "Content-Type": "application/json" };
// Exa's call, was https://api.exa.ai/search
const exa = await fetch("https://api.specstream.ai/exa/search", {
method: "POST",
headers,
body: JSON.stringify({ query: "open source vector databases", numResults: 10 }),
}).then((r) => r.json());
// Parallel's call, was https://api.parallel.ai/v1/search
const parallel = await fetch("https://api.specstream.ai/parallel/v1/search", {
method: "POST",
headers,
body: JSON.stringify({ search_queries: ["open source vector databases"], mode: "fast" }),
}).then((r) => r.json());
for (const result of [...exa.results, ...parallel.results]) console.log(result.title, result.url);4. Leave the rest. Each call is billed as one search at $0.005 for up to 10 results. On a 429, wait the seconds in Retry-After and send the call again; nothing was charged.
When your agent needs every match in place of a results page, write the request in plain words. SpecStream reads it back as the conditions every row must meet and the facts to bring back, quotes the most it can cost, and delivers the rows after you approve.
Frequently asked questions
Something we didn't answer? Talk to a human
Is Exa better than Parallel?
POST /search and Parallel's POST /v1/search with one key at $0.005 a search. It scores 97.9 F-score on all 1,000 SimpleQA Verified questions, and a team keeps whichever format it already wrote.Exa vs Parallel pricing: what does each cost?
lite and $7 on auto, plus $1 per 1,000 results above 10. Parallel costs $1 per 1,000 on turbo and fast and $5 on basic and advanced. SpecStream costs $5 per 1,000 searches of up to 10 results in every mode, with no monthly plan.Can I use both Exa and Parallel?
https://api.specstream.ai/exa and Parallel's at https://api.specstream.ai/parallel, each in its own JSON. One balance, one request log and one spending limit cover both.How many results does a call return?
numResults from 1 to 100, and Parallel's public modes cap results at 20.Do the Exa and Parallel SDKs work with SpecStream?
base_url="https://api.specstream.ai/exa" and Parallel's parallel-web SDK takes base_url="https://api.specstream.ai/parallel", with the SpecStream key in place of theirs. The calls and the replies stay as they are.Which one is free to start?
Sources
SpecStream wrote this page. Each figure for Exa, Parallel and the other APIs comes from that company's own page.
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 10, 2026
- Exa Search API referenceexa.ai/docs/reference/search.md, read Nov 10, 2026
- Parallel pricingdocs.parallel.ai/getting-started/pricing.md, read Nov 10, 2026
- Parallel search modesdocs.parallel.ai/search/modes.md, read Nov 10, 2026
- Parallel advanced search settingsdocs.parallel.ai/search/advanced-search-settings.md, read Nov 10, 2026
- Parallel rate limitsdocs.parallel.ai/getting-started/rate-limits.md, read Nov 10, 2026
- Parallel errorsdocs.parallel.ai/resources/warnings-and-errors.md, read Nov 10, 2026
- Parallel products and free creditparallel.ai/pricing, read Nov 10, 2026
- Parallel docs indexdocs.parallel.ai/llms.txt, read Nov 10, 2026
- Parallel changelogdocs.parallel.ai/resources/changelog.md, read Nov 10, 2026
- Parallel MCPdocs.parallel.ai/integrations/mcp/quickstart.md, read Nov 10, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- Serper homepage and pricingserper.dev/, read Nov 10, 2026
- Firecrawl pricingfirecrawl.dev/pricing, read Nov 10, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026




