Skip to content

New: deep research, balance and auto-reload tools in the keyless MCP server. Install in one line

Exa alternative · technical teardown

Exa alternative: Exa-compatible search API at $1.00 per 1,000 searches

ContextFetch is an Exa-compatible web search API for AI agents: exa_py and exa-js keep working after you point their base URL at https://api.contextfetch.dev. ContextFetch charges $1.00 per 1,000 searches with page Markdown, highlights and a query-pruned context included. Exa lists $7.00 per 1,000 auto or fast searches ($4.00 for Instant) plus $1.00 per 1,000 pages for each content type (checked 2026-10-16). Exa offers more endpoints and runs its own search index; ContextFetch is a cheaper, narrower drop-in for agents that need results as LLM-ready text.

list price per month

100,000 searches, text for 10 pages each

  • Exa$1,700.00

  • ContextFetch$100.00

List prices as of 2026-10-16. 25 searches a day free with no key.

Compare

How the list prices compare

Search APIs for AI agents by list price per 1,000 searches, with what each one includes.

Search APIs for AI agents compared by list price per 1,000 searches, as of 2026-10-16.
ProviderPrice per 1k searchesPage Markdown includedPruned contextKeyless MCP
ContextFetch$1.00 ($0.75 on the $150 pack)Yes, on request (contents), no extra chargeYes: cross-encoder prunedContext + highlightsYes: 25 searches/day per IP via npx
Exa$7.00 auto/fast, $4.00 instant (up to 10 results)Extra: $1.00 per 1,000 pages per content typeHighlights, $1.00 per 1,000 pagesYes: hosted, rate-limited
Tavily$8.00 basic, $16.00 advanced (pay-as-you-go)Optional raw_contentRelevance-ranked content snippetsNo: API key or OAuth sign-in
Firecrawl$1.20 (Scale, billed yearly) to $7.60 (Hobby, billed monthly); 2 credits per 10 resultsExtra: +1 credit per scraped pageHighlight format, +4 credits per pageYes: hosted, daily limits
Serper$1.00 ($50 pack) down to $0.30 at volume; credits expire after 6 monthsNo: Google SERP JSON and snippetsNoNo official server (community servers need a key)
List prices only; latency and result quality are not compared here. Sources: Exa pricing, Exa MCP docs, Tavily pricing, Tavily credits, Tavily MCP docs, Firecrawl pricing, Firecrawl search docs, Firecrawl MCP docs, Serper pricing.

Compatibility

Exa API compatibility

What ContextFetch supports when your code was written for Exa.

Exa featureContextFetch
POST /search: query, numResults, includeDomains, excludeDomains, startPublishedDateSupported. numResults up to 25. camelCase and snake_case both accepted.
contents.text, contents.highlightsSupported. text is clean Markdown with tables preserved; highlightScores are 0–1.
contents.pruned_contextContextFetch extension: returns prunedContext, the query-relevant chunks in original order.
type: auto, neural, keyword, fastAccepted; every type runs the same recall, rerank and prune pipeline.
type: deep variantsAccepted but run as a normal search. No multi-step reasoning.
POST /contents (ids or urls)Supported, up to 10 URLs per call, 1 credit per URL.
POST /findSimilarSupported: scrapes the URL, extracts topic terms and searches outside its domain.
contents.summary, category, includeText, excludeText, endPublishedDate, livecrawl, subpagesNot supported.
/answer, /research, Agent, Websets, MonitorsNot supported.
Auth: x-api-key headerSupported, as is Authorization: Bearer.

Trade-offs

Honest trade-offs

Where Exa is stronger

  • Exa runs its own search index; ContextFetch recalls through metasearch plus a smaller index it grows from traffic.
  • Many more endpoints: /answer with citations, /research, Agent runs, Websets and Monitors.
  • More content and filter options: AI summaries, categories, text filters, end dates, livecrawl and subpages.
  • Result quality and latency against Exa have not been measured by ContextFetch. Run benchmarks/run_benchmark.py with your own EXA_API_KEY to compare on your queries.

Where ContextFetch is different

  • $1.00 per 1,000 searches ($0.75 on the $150 pack), 86% below Exa's auto/fast list price and 75% below Instant.
  • Page Markdown, highlights and pruned context are part of the search credit, not billed per page.
  • Token accounting on the Reader endpoint: X-Token-Savings, X-Raw-Tokens and X-Output-Tokens headers.
  • Prepaid credits that never expire; no subscription. Keyless tier of 25 searches per day (Exa's hosted MCP also has a rate-limited keyless mode).

Cost

Cost at 100,000 searches a month

WorkloadExa list priceContextFetch
100,000 searches, no page text$700.00$100.00
100,000 searches, text for 10 pages each$1,700.00$100.00

Exa: $7.00 per 1,000 auto/fast searches (up to 10 results) plus $1.00 per 1,000 pages per content type. ContextFetch: 1 credit per search at the $15 pack rate, Markdown included for the pages it fetches. Prices as of 2026-10-16; sources under the comparison table.

Migrate

Migrate in one line

Responses keep Exa's shape: requestId, results[].{id, url, title, score, publishedDate, text, highlights, highlightScores} and costDollars.total. SDK result objects drop the extra prunedContext field; read it from the raw HTTP response.

from exa_py import Exa exa = Exa(api_key="EXA_API_KEY")
from exa_py import Exa exa = Exa(api_key="YOUR_API_KEY", base_url="https://api.contextfetch.dev")
# pip install exa-pyfrom exa_py import Exa exa = Exa(api_key="YOUR_API_KEY", base_url="https://api.contextfetch.dev") res = exa.search(    "vector database benchmarks 2026",    num_results=5,    contents={"text": True, "highlights": True},)for r in res.results:    print(r.url, r.highlights)

Questions

Is ContextFetch a drop-in replacement for Exa?

For search, contents and findSimilar, yes: set base_url (Python) or the second Exa constructor argument (TypeScript) to https://api.contextfetch.dev and keep your code. Exa's answer, research, Agent, Websets, Monitors and summary features are not available on ContextFetch.

How much cheaper is ContextFetch than Exa?

At list prices checked on 2026-10-16, Exa charges $7.00 per 1,000 auto or fast searches, $4.00 per 1,000 Instant searches and $1.00 per 1,000 pages for each content type. ContextFetch charges $1.00 per 1,000 searches ($0.75 on the $150 pack) with Markdown included, which is 86% less than auto/fast and 75% less than Instant for search alone.

Does ContextFetch return the same JSON as Exa?

Yes for the supported fields: requestId, results with id, url, title, score, publishedDate, text, highlights and highlightScores, and costDollars.total. ContextFetch adds prunedContext when requested, and a notice field on keyless requests.

Can I try ContextFetch without an API key?

Yes. Send no key, or the key "keyless", for 25 free searches per day per IP. For agents, run: claude mcp add contextfetch -- npx -y @contextfetch/mcp

Is ContextFetch's search quality the same as Exa's?

It has not been measured. ContextFetch's pipeline is metasearch recall plus its own index, reranked by a cross-encoder; Exa runs its own index. ContextFetch publishes only locally measured numbers, and its benchmark script compares against Exa only when you supply your own EXA_API_KEY.

Is ContextFetch affiliated with Exa?

No. ContextFetch is an independent product that implements a compatible API. Exa is a trademark of its owner.

Exa, Tavily, Firecrawl and Serper are trademarks of their respective owners. ContextFetch is an independent product and is not affiliated with, endorsed by or sponsored by any of them.

Switch from Exa with one argument

Start with no key: 25 free searches a day. Credits never expire.