Search with Tavily
Tavily searches the open web and is tuned for LLMs. Pin a query to Tavily with one field, and its results come back in the same shape as every other provider’s.
Results from Tavily
- 1
- 2
- 3
- 4
- 5
Recorded from live searches on 8 October 2026.
Pin a query to Tavily
- Over HTTP, send
"requested_provider": "tavily"with the query. - In an agent connected over MCP, ask it to search with Tavily.
Results come back in the same shape for every provider, as the docs describe. Leave the field out, and Grounder routes each query to the provider most likely to answer it well.
search.shShell
curl https://api.grounder.net/v1/search \
-H "Authorization: Bearer $GROUNDER_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "who invented the telephone",
"top_k": 5,
"requested_provider": "tavily"
}'
import os
import httpx
KEY = os.environ["GROUNDER_KEY"]
r = httpx.post(
"https://api.grounder.net/v1/search",
headers={"Authorization": f"Bearer {KEY}"},
json={
"query": "who invented the telephone",
"top_k": 5,
"requested_provider": "tavily",
},
timeout=30,
).json()
for hit in r["results"]:
print(hit["rank"], hit["title"], hit["url"])
const res = await fetch("https://api.grounder.net/v1/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.GROUNDER_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
query: "who invented the telephone",
top_k: 5,
requested_provider: "tavily",
}),
})
const { results } = await res.json()
claude mcp add --transport http grounder \
https://api.grounder.net/mcp
# then /mcp, grounder, Authenticate
Filters Tavily applies
Set them under filters. A filter a provider can’t apply returns 400 unsupported_filter.
| Filter | Keeps |
|---|---|
domains | Only these sites, or with "mode": "exclude", none of them. |
recency | The last so many days, or a range of dates. |
request.jsonJSON
{
"query": "who invented the telephone",
"top_k": 5,
"requested_provider": "tavily",
"filters": {
"domains": { "values": ["britannica.com"] }
}
}
Already calling Tavily?
Swap the base URL and key; keep your code. This endpoint takes Tavily’s request and returns Tavily’s response shape, but Grounder routes each query, so any provider may answer it.
base URLDiff
- https://api.tavily.com/search
+ https://api.grounder.net/compat/tavily/search