Agent Search After the Tavily-Nebius Deal
Tavily acquired by Nebius for $275M. Free tier getting restrictive, enterprise focus. Migration paths for developers who built on Tavily's generous free tier.
Tavily was acquired by Nebius for $275M in 2026, shifting the agent search landscape significantly. The acquisition means Tavily's free tier is becoming more restrictive, enterprise pricing is the focus, and developers who built on Tavily's generous free tier need to evaluate alternatives before rate limits or pricing changes hit their production agents.
What the acquisition changes
- Tavily free tier now has aggressive per-minute rate limits (~20 min wall)
- Enterprise focus means less investment in developer-tier features
- Nebius integration may change data routing and privacy policies
- Long-term pricing likely increases as Nebius monetizes the $275M investment
Current agent search landscape (May 2026)
Provider | Free tier | Paid | Acquisition status
Tavily | 1K/mo | Enterprise | Acquired by Nebius ($275M)
Exa | 1K/mo | $7/1K | Raised $250M at $2.2B
Scavio | 250/mo | $30/mo=7K | Independent
Brave | None | $5 prepaid | Independent
SerpAPI | 250/mo | $25/mo=1K | Lawsuit with Google/Reddit
DataForSEO | None | $50 min | IndependentMigration path: Tavily to alternatives
# Before: Tavily search
# from tavily import TavilyClient
# client = TavilyClient(api_key="tvly-...")
# results = client.search("query")
# After: Scavio search (drop-in replacement)
import requests
def search(query: str, num_results: int = 5) -> dict:
"""Tavily-compatible search function using Scavio."""
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": "YOUR_KEY"},
json={
"query": query,
"num_results": num_results
}
)
data = resp.json()
# Format to match Tavily-style output
return {
"results": [
{
"title": r["title"],
"url": r["url"],
"content": r.get("snippet", "")
}
for r in data.get("organic_results", [])
]
}
results = search("best search API for AI agents 2026")
for r in results["results"]:
print(f"{r['title']}: {r['url']}")
MCP migration
{
"mcpServers": {
"scavio": {
"url": "https://mcp.scavio.dev/mcp",
"headers": {
"x-api-key": "YOUR_KEY"
}
}
}
}What Tavily still does well
Tavily's summarized search results are genuinely useful for agents that need pre-processed context rather than raw SERP data. If your agent needs a one-sentence answer rather than a list of links, Tavily's output format is more convenient. The tradeoff is less control over the data and increasing vendor risk post-acquisition.
// LangChain: swap Tavily for Scavio
// Before:
// import { TavilySearchResults } from "@langchain/community/tools/tavily_search";
// const tool = new TavilySearchResults();
// After: custom Scavio tool
const scavioSearch = async (query) => {
const resp = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.SCAVIO_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({ query, num_results: 5 })
});
return resp.json();
};
Decision framework
- Stay on Tavily if: you are on an enterprise plan with contractual guarantees
- Migrate now if: you rely on the free tier for production agents
- Evaluate Exa if: you need semantic/concept search (different from keyword search)
- Choose Scavio if: you need multi-platform search (Google + YouTube + Amazon + Reddit)