> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tako.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contents

export const ContentsContextWarning = () => <Warning>
    <strong>Don't read a large export into a model's context.</strong> A card export can hold up to 100,000 rows, and at about 15 tokens per row, 10,000 rows cost about 150,000 tokens. Write the export to a file, on disk or in memory, and have your agent parse it with code. Give the model only the rows or results it needs. To cap the export instead, set <code>max_rows</code>.
  </Warning>;

export const CodingAgentCTA = ({description, href}) => <p className="mt-2 text-lg prose prose-gray dark:prose-invert [&>*]:[overflow-wrap:anywhere]">
    {description} Building with a coding agent?{" "}
    <a href={href}>Give your agent the full reference →</a>
  </p>;

export const PlaygroundButton = ({href = "https://tako.com/playground", label = "Try in Playground"}) => <div className="float-right not-prose ml-4 -mt-12">
    <a href={href} target="_blank" rel="noopener noreferrer" className="inline-flex items-center gap-1.5 rounded-full border border-gray-200 dark:border-white/15 bg-white dark:bg-white/5 px-3 py-1.5 text-sm font-medium text-gray-700 dark:text-gray-200 no-underline transition-colors hover:border-gray-300 hover:bg-gray-50 dark:hover:bg-white/10">
      <svg viewBox="0 0 24 24" aria-hidden="true" className="h-3.5 w-3.5 fill-current">
        <path d="M8 5v14l11-7z" />
      </svg>
      {label}
    </a>
  </div>;

<CodingAgentCTA description="Fetch agent-ready full content behind any Search or Answer result — a structured-data CSV export for a Tako card, or the full extracted contents of a web page. Precise, source-grounded inputs for agentic apps." href="/documentation/integrating-tako/contents/for-coding-agent" />

## When to use Contents

[Contents](/api-reference/contents) fetches the **full content behind** a result you already have from [Search](/documentation/integrating-tako/search/overview) or [Answer](/documentation/integrating-tako/answer/overview) — in agent-ready form. Pass the result's URL and Tako returns one of two things, depending on what the URL points to:

* a **structured-data CSV export** — the exact series behind a Tako card, ready to parse, compute on, or load into a dataframe; or
* the **full extracted contents of a web page** — clean, parseable text, not raw HTML.

Reach for it when:

<CardGroup cols={1}>
  <Card title="You've already found the result and want the content itself, not prose" icon="file-lines">
    There's no synthesis and nothing to re-derive — the CSV *is* the card's data, and the extracted text *is* the page, ready to use directly.
  </Card>

  <Card title="It's a second step, not a search" icon="diagram-project">
    Contents operates on a URL you already have: find the result with Search or Answer first, then fetch what's behind it.
  </Card>

  <Card title="You're building agentic apps that need precise, source-grounded inputs fast" icon="robot">
    Pull the exact numbers behind a card, or the full clean text behind a web result, and act on real content instead of scraping it yourself.
  </Card>
</CardGroup>

## How it fits

Contents operates on a result you already have:

<Steps>
  <Step title="Search or Answer with a query">
    Call [Search](/documentation/integrating-tako/search/overview) or [Answer](/documentation/integrating-tako/answer/overview) with a query.
  </Step>

  <Step title="Find the downloadable result">
    A downloadable result carries a `content` descriptor in the response (`format` is `csv` for a Tako card, `text` for a web page).
  </Step>

  <Step title="Pass its URL to Contents">
    Pass that result's URL — a card's `webpage_url` or a web result's `url` — to **Contents** to download the data.
  </Step>
</Steps>

<Note>
  A result is downloadable **only when** it carries a `content` descriptor in the Search or Answer response. Some results' underlying data can't be exported, so they come back **without** one — that's expected, not an error. Check for the descriptor and skip Contents for results that don't have it. Both shapes carry a cost, reported on the descriptor: a card CSV bills a per-export baseline plus a per-row rate, and web-page text extraction bills per page. See [Contents pricing](/documentation/integrating-tako/contents/pricing).
</Note>

## What the content looks like

<Tabs>
  <Tab title="Tako card → CSV">
    **A Tako card → structured-data CSV.** Contents returns the card's data as a CSV with a header row and one row per data point — the same series the card visualizes. A time-series card comes back keyed by an ISO‑8601 `Timestamp` (with timezone offset), one column per series:

    ```csv theme={null}
    Timestamp,usaspending_sum_obligation - Palantir Technologies Inc. Federal Contract Obligations
    2007-10-01 00:00:00+00:00,135211.06
    2008-10-01 00:00:00+00:00,4378216.96
    2009-10-01 00:00:00+00:00,5801023.5
    2010-10-01 00:00:00+00:00,20915978.15
    2011-10-01 00:00:00+00:00,39889371.870000005
    2012-10-01 00:00:00+00:00,33785816.41
    2013-10-01 00:00:00+00:00,75264989.77
    2014-10-01 00:00:00+00:00,95333802.78999999
    2015-10-01 00:00:00+00:00,131712687.67
    2016-10-01 00:00:00+00:00,132155363.88
    2017-10-01 00:00:00+00:00,116424925.9
    2018-10-01 00:00:00+00:00,162675170.62
    2019-10-01 00:00:00+00:00,268668118.8
    2020-10-01 00:00:00+00:00,228912825.77
    2021-10-01 00:00:00+00:00,376844743.53
    2022-10-01 00:00:00+00:00,348059526.7
    2023-10-01 00:00:00+00:00,541197885.14
    2024-10-01 00:00:00+00:00,1020566208.97
    2025-10-01 00:00:00+00:00,713329284.7
    ```

    The header names the series exactly as the card sources it, so the values are self-describing and ready to attribute.
  </Tab>

  <Tab title="Web page → text">
    **A web page → full extracted contents.** For any non-card URL, Contents returns the page's full contents as clean, extracted text — the readable body, not raw HTML or navigation chrome — ready to feed straight to a model:

    ```text theme={null}
    Palantir Technologies Inc. — Federal Contract Obligations

    Palantir's U.S. federal contract obligations have grown sharply over the past
    decade, from roughly $135K in FY2007 to more than $1B in FY2024. The largest
    single-year jumps came in FY2019 and FY2024, driven by expanded defense and
    intelligence engagements…

    (full page text continues)
    ```

    No crawling, boilerplate stripping, or HTML parsing on your side — you get the page's content in a form your model can read directly.
  </Tab>
</Tabs>

## Example

<PlaygroundButton />

Pass a card's URL — Tako detects the right content from the URL and returns a short-lived download link:

```bash theme={null}
curl -X POST https://tako.com/api/v1/contents \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://tako.com/card/KfYeym50vtsF93LMsIFW/"
  }'
```

```json theme={null}
{
  "contents": [
    {
      "format": "csv",
      "source_url": "https://tako.com/card/KfYeym50vtsF93LMsIFW/",
      "cost": 0.021,
      "url": "https://tako.com/...signed-download...",
      "expires_at": "2026-06-29T18:30:00Z"
    }
  ],
  "request_id": "9c1b..."
}
```

Want the data straight back in the response instead of a download link? Set `"mode": "inline"`. See the [For Your Coding Agent](/documentation/integrating-tako/contents/for-coding-agent) page for the full request and response reference.

## Use cases

**Feed a small card's numbers to an agent.** Ask for `inline` mode and the rows come back in the response body, so the agent computes on real values instead of inferring them from prose. `inline` returns 2,000 rows unless you set `max_rows`.

```bash theme={null}
curl -X POST https://tako.com/api/v1/contents \
  -H "X-API-Key: $TAKO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://tako.com/card/KfYeym50vtsF93LMsIFW/", "mode": "inline"}'
```

<ContentsContextWarning />

**Give a large series to an agent.** Ask for `url` mode instead and you get a short-lived signed link rather than the rows. Write the file to disk or load it into memory, and have the agent parse it with code. The model sees only what the code returns.

```python theme={null}
import pandas as pd

df = pd.read_csv(download_url)
```

Here `download_url` is the signed `url` from a `mode: "url"` Contents response. See [Give a large export to an agent](/documentation/integrating-tako/contents/for-coding-agent#give-a-large-export-to-an-agent).

**Read the full page behind a web result.** Pass a web URL where the examples above pass a card URL — the call is otherwise identical. You get clean extracted text instead of raw HTML, in `contents[0].data`, ready to drop into a model's context with no crawler and no HTML parser.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.