Tako searches licensed data as cited knowledge cards, and the web, in one call.
Features4
Modes9
Filters2
Playground
Results from Tako
-
1
Coroutines and tasks — Python 3.15.2 documentation docs.python.org
-
2
Lib/asyncio/taskgroups.py github.com
-
3
Exceptions and Task Groups (Video) – Real Python realpython.com
-
4
Exception Groups & TaskGroups async-concurrency.com
Recorded from live searches on 28 October 2026.
Features
Tako delivers 4 of the features on the feature list, each from one or more of its modes.
| Feature | Returns |
|---|---|
| Web search (general) | Ranked pages from the open web that match a query, each with a passage. |
| News | News articles on a subject, dated, from news sources; a date window keeps them to the last days. |
| Page text | The text of pages: the pages a query finds, read in full or as the passages that answer it, or the pages at given addresses. |
| Data charts | Licensed statistics as charts and figures with their source (S&P Global, YouGov, NOAA and more). |
Modes
Tako has 9 search modes. Choose which of them a search may use under Routing on your account page.
- Default search
- Data
- Web
- News
- Deep
- Instant
- Answer
- Web full text
- Web highlights
Filters Tako 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": "python asyncio TaskGroup exception handling",
"top_k": 5,
"requested_provider": "tako",
"filters": {
"domains": { "values": ["docs.python.org"] }
}
}
Pin a query to Tako
- Over the HTTP API, send
"requested_provider": "tako"with the query and your search key. - In an agent connected over MCP, ask it to search with Tako.
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": "python asyncio TaskGroup exception handling",
"top_k": 5,
"requested_provider": "tako"
}'
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": "python asyncio TaskGroup exception handling",
"top_k": 5,
"requested_provider": "tako",
},
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: "python asyncio TaskGroup exception handling",
top_k: 5,
requested_provider: "tako",
}),
})
const { results } = await res.json()
claude mcp add --transport http grounder \
https://api.grounder.net/mcp
# then /mcp, grounder, Authenticate