Tavily is the default answer to “how do I give my agent web search?” It has a clean API, good retrieval quality, and a free tier. But it also has a separate account, a separate API key, and a separate dollar-denominated bill.

The friction is not the dollar part. It is the second of everything: a second signup, a second key, a second dashboard, a second line on your statement. This post compares the realistic alternatives — what they replace, how they bill, and where each one fits.

Note on terminology: this post talks about paying in cryptocurrency. The supported option today is Bitcoin (BTC) on the network shown in your dashboard. There is no minimum top-up. Other coins may be added later; check the dashboard for the current list.

The Tavily pattern

A typical Tavily integration looks like this:

import os
from tavily import TavilyClient

tavily = TavilyClient(api_key=os.getenv("TAVILY_API_KEY"))

results = tavily.search(
    query="What changed in EU AI regulation this week?",
    search_depth="advanced"
)

# Then you manually stuff results into the model prompt...

That works. But it means:

  • A Tavily account and API key
  • A dollar balance or subscription
  • Manual prompt construction on every request
  • A second usage dashboard to monitor

If your model provider also bills in dollars, you now have two card charges and two rate limits to manage.

The alternatives

AlternativeWhat it replacesHow billing worksBest fit
Gateway with built-in searchTavily + model providerOne balance, Bitcoin or cardTeams already on OpenAI SDK
Self-hosted search (SearXNG, etc.)Tavily onlyYour own infra costMaximum control, high maintenance
Bing / Google Search APITavilyCard, provider billingEnterprise with existing cloud accounts
Perplexity APITavily + modelCard, per requestWant an answer, not raw search results

The rest of this post focuses on the first option, because it is the one that changes the billing model.

Instead of calling Tavily and then a model, you call one endpoint that does both:

from openai import OpenAI

# Same OpenAI SDK — no Tavily import, no second key
client = OpenAI(
    api_key="your-easyrouterai-key",
    base_url="https://easyrouterai.com/v1"
)

# Search happens automatically; results are global, not China-centric
response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "What changed in EU AI regulation this week?"}]
)
print(response.choices[0].message.content)

What changed compared to Tavily:

Tavily + modelGateway with built-in search
API keys2 (Tavily + model)1
Billing2 balances1 balance
Payment methodsCardCryptocurrency (Bitcoin) or card
Search setupClient + manual promptNone — automatic
Search sourceYour Tavily indexGlobal open web (advanced retrieval)
Model choiceAny model you wire upMultiple open weights, one endpoint

When to keep Tavily

Be fair to Tavily: it is the right choice in some cases.

  • You need structured search results (title, URL, score) as JSON — not a prose answer
  • You build a search UI (cards, result lists, snippets) where the model is not involved
  • You need fine-grained control over query parameters, result count, domain filtering
  • You already have a Tavily subscription and the seat cost is negligible

In those cases, Tavily is a search API. A gateway with built-in search is not trying to replace that.

When the alternative is simpler

  • Your product calls a model and wants web-grounded answers — not raw result lists
  • You want one balance, paid in Bitcoin
  • You want to swap models (DeepSeek, Qwen, GLM, Kimi) without rewiring search
  • You serve users outside China and need global web sources, not a China-indexed search
  • You do not want to maintain an agent loop that calls search, then builds a prompt, then calls the model

The test is simple: if your code has both tavily.search() and client.chat.completions.create() in the same function, the gateway version replaces both.

What you give up

Be explicit about the trade-off:

  • No structured citations. The model returns sources embedded in prose, not a JSON array of URLs
  • No per-result scoring. You cannot sort or filter search hits before the model sees them
  • No raw result list. If you need to display “10 search results” to the user, use a search API
  • Search is always on. There is no flag to disable it per request

These are the same constraints as the rest of the “built-in search” design — they follow from search being automatic rather than manual.

Crypto billing: what it changes

The practical difference is the checkout and the number of invoices:

Tavily + OpenAI-compatible modelGateway alternative
Accounts21
KYC / cardUsually requiredNot required for Bitcoin tier
Top-upDollarsBitcoin
Monthly itemsModel bill + Tavily billOne credit balance

For a team holding Bitcoin, that is the entire reason to switch.

FAQ

Is this a Tavily replacement in every case?

No. This is not a statement that Tavily is bad — it is a statement that you do not need a second account and a second bill. Under the hood, the gateway uses advanced retrieval (the same Tavily-powered search) over the global open web. What changes is the billing: one endpoint, one balance, paid in cryptocurrency. If you need structured search results as JSON to build a search UI, keep Tavily as a standalone search API.

Do I still need a Tavily API key?

No. You do not sign up for Tavily, do not manage a Tavily key, and do not monitor a Tavily dashboard. The gateway handles retrieval internally. Your code has one api_key field.

Which cryptocurrencies are supported?

Payments are in cryptocurrency. The supported option today is Bitcoin (BTC) on the network shown in your dashboard; no minimum top-up is required. Check the dashboard for the current list as more options are added.

Can I disable search and call the model raw?

No. Search is always on by design. For raw model calls, use a separate endpoint or provider.

Is the search source really global?

Yes. Retrieval runs over the global open web — English news, academic papers, official documentation, primary sources — not limited to the model’s training region.

Which models can I use?

DeepSeek V4-Flash, Qwen3.8 (Max / Plus / Flash), GLM-5.3-Flash, Kimi K3, MiniMax, and more. Switch by changing one string.

How do I migrate from Tavily?

Delete the Tavily client import, point the OpenAI SDK at the gateway’s base_url, and remove the manual prompt-building step. The request and response shapes stay the same.

The bottom line

Tavily is a search API. A gateway with built-in search is a model + search bundle. They overlap when your goal is “give the model current web context,” and they diverge when your goal is “show the user a list of search results.”

If your team pays in Bitcoin and your model already speaks OpenAI SDK, the bundle removes two keys, two balances, and one manual step from the request path.