Serpex vs Tavily (2026): Pricing, Features and Fit
Serpex and Tavily both give an application or an AI agent live web results through an API. They overlap on the core job, but they are built with different priorities, and the right choice depends on what your pipeline does after the search call returns.
This page compares them on what you can check yourself: published prices, request parameters, response fields and billing rules. Every competitor figure below comes from Tavily's own pricing page or documentation, with the date it was checked. We make Serpex, so read this as a vendor's comparison, and where Tavily is the better fit we say so plainly.
What each API is
Serpex is a search API: real-time web search results as structured JSON, plus page content extraction. There are two endpoints:
POST /api/searchtakes a query (q, up to 500 characters) and returns ranked results withtitle,url,snippetandposition. Setinclude_content: trueand the top 5 or 10 results also come back with their page content as markdown, in the same response.POST /api/crawl(the Extract API) takes up to 10 URLs and returns each page as markdown or HTML.
There are official SDKs (pip install serpex, npm install serpex) and an MCP server, serpex-mcp, that exposes a serpex_search tool to MCP clients. See the docs.
Tavily is a search API aimed at RAG pipelines, billed in credits rather than per request. Its documented endpoints are Search, Extract, Crawl, Map and Research. The Search endpoint has considerably more controls than ours: search depth (basic, advanced, fast, ultra-fast), topic (general, news, finance), time_range, include_domains / exclude_domains, country, include_answer for a generated answer, and include_raw_content for page text. Official SDKs are tavily-python and @tavily/core.
Pricing, side by side
Both products sell credits. Serpex is one-off top-ups with no subscription. Tavily offers monthly plans and pay-as-you-go credits.
| Serpex | Tavily | |
|---|---|---|
| Search, per 1,000 requests | 0.80 (Starter) | 8.00 (basic depth) |
| Advanced / deeper search | Not offered | 2 credits per request, so double the basic rate |
| Page content with search results | 2 credits for 5 pages, 4 credits for 10 pages, in the same request | include_raw_content on the search call |
| Standalone extraction | 1 credit per URL: 0.80 per 1,000 pages | 1 credit per 5 URLs (basic), 2 per 5 (advanced); about $1.60 per 1,000 pages at pay-as-you-go rates |
| Free tier | 200 free credits on signup, no card | 1,000 credits every month on the free Researcher plan, no card |
| Billing model | Pay-as-you-go top-ups, no subscription | Monthly plans or pay-as-you-go at $0.008 per credit |
Tavily figures: search price, extraction price and free tier from tavily.com/#pricing as of 2026-08-16; search-depth credit costs and the $0.008 pay-as-you-go rate from Tavily's API credits docs, checked 2026-09-28. Serpex figures are from our pricing page and the Search API reference.
Serpex tiers in full: Starter (49 in top-ups) is 50 – 0.65, Scale (1,999) is 2,000+) is custom. Your tier follows your cumulative top-ups.
What a typical RAG request costs
A common pattern is "search, then give the model the text of the top 10 pages". On Serpex that is one request at 4 credits: 2.60 at Standard and 5.00 – $8.00 per 1,000 at basic depth and double that at advanced.
If you only need result links and snippets, the gap is the plain search price: 0.80 per 1,000 on Serpex against 8.00 on Tavily.
Billing rules worth knowing
A list price is only half the bill. What counts as a billable request matters too. On Serpex:
- Errors are never charged.
- An empty result is charged only when the query is confirmed to have no results; otherwise it is free.
- Repeating the same request within about 5 minutes from your organisation is served from cache at 0 credits.
- Page content is best-effort. The docs say content comes back for roughly 79% of requested results. You are billed on what was delivered, and if no content is delivered at all you pay the plain search rate of 1 credit.
Every response carries metadata.credits_used, so you can see exactly what each call cost.
Where Tavily is the better choice
These are real advantages, and for some teams they will decide the matter.
It can write the answer for you. include_answer returns a generated answer alongside the results. Serpex returns retrieval only; your own model writes the answer.
It has more search controls. Domain include and exclude lists, time ranges, a news or finance topic, a country, and several search depths are all request parameters. Serpex search takes a query and the content options, and nothing else. If your agent depends on restricting sources or recency through parameters, Tavily does more out of the box.
It does more than search. Crawl, Map and Research endpoints cover site crawling and multi-step research tasks. Serpex offers search and URL extraction, and does not crawl whole sites or run research jobs.
Its free tier renews. 1,000 credits every month is a genuine free tier for hobby projects and prototypes. Serpex's 200 free credits are a one-time signup allowance.
Its framework integrations are well established. Tavily's LangChain and LlamaIndex integrations are widely used. If your stack already calls Tavily through one of them, switching has an engineering cost that low-volume usage may not justify.
Choose Tavily if you want the API to synthesise answers, you rely on domain, time or topic filters, you need crawling or research endpoints, or your volume fits comfortably inside the monthly free credits.
Where Serpex is the better choice
Retrieval cost at volume. At list prices, a plain search costs 0.80 per 1,000 on Serpex against 8.00 on Tavily. For agents that make many searches per task, that difference grows quickly.
Search plus page text in one billed request. include_content returns markdown for the top 5 or 10 results in the same response, charged at 2 or 4 credits and based on what was actually delivered.
Predictable, inspectable billing. No subscription to size in advance, no charge for errors or unconfirmed empty results, free repeats within the cache window, and credits_used on every response.
Separate extraction when you already have the URLs. The Extract API returns markdown or HTML for up to 10 URLs per request at 1 credit per successful URL. Failed URLs are not charged, and each site's robots.txt is respected.
Choose Serpex if your model does its own reasoning and you mainly need fresh results and page text, cheaply and at volume.
Known Serpex limits
To be fair to both sides, here is what Serpex does not do: no domain, date or topic filter parameters; no generated answers; no whole-site crawling; no PDF extraction (the Extract API handles text-based content only, up to 10 MB per page); and page content is best-effort rather than guaranteed for every result.
Migrating a search call from Tavily
If you already call Tavily's Search endpoint, the move is a small change in request and response mapping.
A Tavily search that also asks for page text:
curl -X POST https://api.tavily.com/search \-H "Authorization: Bearer tvly-YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"query": "vector database benchmarks", "max_results": 10, "include_raw_content": "markdown"}'
The Serpex equivalent:
curl -X POST https://api.serpex.dev/api/search \-H "Authorization: Bearer sk_your_api_key" \-H "Content-Type: application/json" \-d '{"q": "vector database benchmarks", "include_content": true, "content_results": 10}'
Field mapping:
| Tavily | Serpex | Note |
|---|---|---|
query | q | Serpex caps queries at 500 characters |
include_raw_content | include_content + content_results (5 or 10) | Content arrives in results[].content as markdown |
results[].content (snippet) | results[].snippet | |
results[].raw_content | results[].content | A failed fetch returns content_error instead |
results[].score | results[].position | Rank order, not a relevance score |
include_domains, time_range, topic, include_answer | No equivalent | Keep Tavily, or handle these in your own code |
For LangChain or LlamaIndex, wrap the Serpex call as a custom tool. For MCP clients, point them at serpex-mcp (setup in the SDK docs). The Tavily alternative page has the short version of this comparison.
FAQ
Is Serpex cheaper than Tavily?
At list prices, yes, for plain search: $0.50 – $0.80 per 1,000 searches on Serpex against $5.00 – $8.00 at basic depth on Tavily (Tavily figures as of 2026-08-16). If your volume fits inside Tavily's 1,000 free monthly credits, Tavily costs you nothing.
Does Serpex generate answers like Tavily's include_answer?
No. Serpex returns results and, optionally, page content as markdown. Your own model writes the answer, which also means you keep control of the model and the prompt.
Can Serpex filter by domain or date?
Not through request parameters. The search endpoint accepts q, include_content and content_results. If domain or date filters are central to your agent, Tavily is the better fit today.
Do I pay for failed page fetches?
No. With include_content, billing follows how many pages were delivered: 1 – 5 delivered costs 2 credits, 6 – 10 costs 4, and none delivered costs the plain 1 credit. On the Extract API, failed URLs are not charged.
How do I try Serpex?
Create a key at app.serpex.dev. New accounts get 200 free credits with no card required. The quickstart walks through a first search and a first extract request.