What Answer does
POST https://tako.com/api/v1/answer takes a natural-language query and returns a synthesized written answer in a single fast call, grounded in real-time, trusted data — alongside the Tako knowledge cards and web results that back it. Use it to ground your own model output and keep what you show consistent with Tako’s data (for example, grounding a stock-price analysis with Tako’s up-to-date pricing card).
Answer takes the same request body as Search; the only response difference is the added answer string. Because each backing card ships with named sources and methodology, you get an answer you can attribute and cite, not just a paragraph of text.
- Base URL:
https://tako.com/api/ - Auth: send your API key in the
X-API-Keyrequest header (not a bearer token). Create a key in the Tako console.
Install
Minimal working example
Each snippet makes the same call and is complete after you setTAKO_API_KEY.
Request parameters
The body is aSearchRequest — identical to Search. Only query is required; effort (fast default / instant / deep), sources, country_code (US), locale (en-US), timezone, and output_settings all behave exactly as documented in the Search reference.
Forcing entity boundaries in query
Tako identifies the entities in the query before it retrieves the cards and web results that ground the answer. Double quotes force a phrase to be exactly one entity, and an optional :LABEL suffix sets its type. Use this when you already know the entity — an agent usually does.
PERSON, ORG, GPE, LOC, PRODUCT, DATE, EVENT, MONEY, CARDINAL, METRIC, TIME_PERIOD, UNITS.
Quoting is all-or-nothing: every " in the query must belong to a non-empty pair of 80 characters or less. If one quote is unmatched, Tako ignores every quote in that query and searches as usual, so an ordinary web-style phrase query still works. An unrecognized label stays in the query text. The quotes never reach the search text. Search accepts the same syntax.
Latency
Target p50 latency (not a guarantee), byeffort:
Choosing sources
By default Answer grounds in both Tako’s curated knowledge graph (data) and the live web (web), 5 results each. sources is an object whose keys select the indexes — a source is used only if its key is present:
Per-source
count (1–20, default 5), include_contents, and defer_data_retrieval (data only; mutually exclusive with include_contents) work as in Search. The legacy key tako maps to data.
What a response looks like
A200 returns an AnswerResponse — a SearchResponse plus a required answer string. cards[0] is the lead card: the best one to show alongside the answer.
Backing cards carry the same
content/cost fields as Search; credits apply per call — see Credits & billing.
Grounding and attribution
To keep your content accurate and citable, read these fields off each card:description— a natural-language description of the data and the latest data point.sources— named sources (source_name,source_description) backing the card.methodologies— how the data was collected or derived.image_url— a static image of the card to display next to the answer.
When to use Answer
Answer is for a ready-to-show, source-attributed answer in one call — synthesized prose that draws the best answer from both Tako’s curated data and the live web, shipped with the cards and web results that back it. Reach for it when:- You want prose you can drop straight in. One synchronous call returns a written
answer, not raw results to assemble yourself — ideal for chat assistants and any surface that needs text. - The answer has to be citable. Every answer comes back with its backing cards — named sources and methodology — so you can attribute each claim and keep content auditable.
- You want it to stay current. Re-run the same query to refresh prose that stays grounded in live data, across Tako’s curated knowledge graph and the live web by default.
- You’re grounding your own model. Inline the underlying data with
include_contentsso your model reasons over real numbers, not snippets.
answer. Need multi-step reasoning — resolving a cohort, ranking a set, multi-hop aggregation? Use the Agent.
Common mistakes
Errors
Failures return aBaseAPIError body: { "error_message": "...", "error_type": "..." }.