Skip to main content
Search is for fast retrieval you render or post-process yourself, with no written answer on top. One call returns both kinds of result — data results (interactive Tako knowledge cards backed by structured data) and web search results. Reach for it when:

You want raw, structured results, not prose

There’s no answer-synthesis LLM call in the loop, so results come back fast — quick enough to fan out across many entities in parallel.

You're building an agentic system that needs a lot of accurate data, fast

Call Search repeatedly — one query per entity — and act on structured results instead of waiting on generated text.

You want more than a single number

Each result is a knowledge card — a full data series with its sources and methodology, not a lone value — so one query returns the surrounding context too, ready to render or compute on.

You want broad coverage you can trust

No single source has everything, so Search queries Tako’s curated index (finance, macro, geopolitics, sports, weather) and the live web by default — broad coverage you can trust.
Choosing between Tako’s surfaces (see the full comparison):
SurfaceWhat it’s for
SearchFast, parallel retrieval of structured data and cards, in one call, no synthesized answer.
AnswerA written, source-attributed answer over the same retrieval, in one call.
Search AgentMulti-step research returning schema-defined structured data and cards.
Answer AgentDeep research synthesizing a cited answer backed by visualizations.

Example

curl -X POST https://tako.com/api/v3/search \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "What is the price of Silver?"
  }'

Example Result

Query: “What is the price of Silver?”

Use cases

Fan out Search calls in an agentic loop to gather fresh, structured data fast.
for ticker in ["NVDA", "AMD", "INTC"]:
    results = client.search(SearchRequest(query=f"{ticker} quarterly revenue"))
Restrict to Tako’s authoritative knowledge graph when you only want vetted sources.
results = client.search(SearchRequest(query="US inflation rate", sources={"data": {}}))
Embed the live visualization from each result straight into your UI.
results = client.search(SearchRequest(query="S&P 500 over the last 5 years"))
for card in results.cards or []:
    print(card.embed_url)  # drop into an <iframe>
Inline the underlying data so your model reasons over numbers, not snippets.
results = client.search(SearchRequest(
    query="Palantir federal contract obligations",
    sources={"data": {"include_contents": True}},
))

Choosing sources

By default Search queries both Tako’s curated knowledge graph and the live web. Pass sources to control this — an object whose keys are the sources to search. A source is searched only if its key is present. Omit sources to use the default (both sources, 5 results each):
sources valueSearches
omit (equivalent to { "data": {}, "web": {} })Both (default).
{ "data": {} }Tako knowledge cards from the curated knowledge graph only.
{ "web": {} }Web results only.
The legacy value tako is accepted as a synonym for data. Each source takes optional per-source settings: count (1–20, default 5) and include_contents (inline the underlying data in the response). The curated-data source also supports defer_data_retrieval. For example, { "data": { "count": 10 } } returns up to 10 Tako cards.

Tips

Enhance queries with context: Your code can inject context from the user’s session to improve relevance. For example, if you know the user is in a financial context, send "MSFT stock price last 6 months" instead of just "MSFT".
Use the structured response: Each knowledge card includes title, description, embed_url, image_url, webpage_url, and sources. Use these to display interactive charts, static images, or data provenance in your app.
Download the underlying data: A result whose underlying data is downloadable includes a content descriptor. Pass that result’s URL to Contents to download it — a CSV for a Tako card, or extracted text for a web page.