Skip to main content
Create interactive, embeddable cards from your own data using the Tako Thin-Viz API.

Why Thin-Viz

  • Your data, Tako’s rendering. Post your own values and component configs; Tako returns a polished, interactive card — no charting library or frontend work on your side.
  • A full component gallery. Timeseries, bar, pie, table, treemap, sankey, choropleth, heatmap, waterfall, and more — composed top to bottom in a single card.
  • Embed anywhere. Every card comes back with an embed_url (interactive iframe) and an image_url (static image) for chat, dashboards, or docs.

Creating a Card

Create a card by posting your component configurations. One API call, one card.
Response:

Request Fields

Embedding Your Card

Use the embed_url from the response in an iframe:
Add ?dark_mode=true or ?dark_mode=false to control the theme.

Preview Images for ZDR Cards

Cards created with zero data retention (ZDR) don’t normally support preview images because the visualization data isn’t persisted. To get a downloadable image for a ZDR card, set image_ttl_minutes when creating the card:
The response includes an image_url that renders a screenshot on demand. You can customize the image with query parameters:
After the TTL expires, the image endpoint returns 410 Gone. The TTL must be between 1 and 1440 minutes (24 hours).
image_ttl_minutes is only supported for ZDR cards and is ignored for standard cards, which already have persistent preview images.

Example: Stock Card with Kicker Boxes

For financial data, use the generic_timeseries component with show_kicker_boxes enabled:
When show_kicker_boxes is enabled, each dataset with a kicker field renders a stock box above the chart showing the exchange label, current value, and change.

Example: Stock Card with Explicit Stock Boxes

Alternatively, use separate stock_boxes and generic_timeseries components for full control:
For stock_boxes, the subValue color is automatic: values starting with + appear green, - appear red.

Example: Bar Chart

Example: Data Table Chart

A bar chart with an auto-generated data table below showing the values:

Example: Financial Boxes

Display financial metrics with growth indicators:
Growth indicator colors are automatic: positive value appears green, negative appears red.

Example: Data Table

A configurable table with columns, sorting, and pagination:

Table Column Types

Table Config Fields

Each column also supports an optional align field ("left", "right", or "center") to override the default alignment.
When highlight_best is enabled, the best value in each currency, number, and rating column is highlighted with a green background. Currency columns treat the lowest value as best; number and rating columns treat the highest value as best. Boolean columns are excluded — they use checkmark colors instead.

Example: Timeline

A timeline showing events or periods along a time axis:

Timeline Fields

Each event in the events array has:
When timeline_mode is not set, the mode is auto-detected based on the distribution of events. Use "ordinal" mode when events have very different time gaps and you want them spaced evenly, or "absolute" mode when the proportional time spacing is meaningful.

Example: Pie Chart

Show proportional data as slices of a circle:
Each data point uses x for the slice label and y for the value. Slices are colored automatically from the theme palette.

Example: Histogram

Bin raw values into a frequency distribution:
The y values are the raw data — bins are computed automatically. Use num_bins to set the number of bins, or bin_width to set a fixed width.

Example: Scatter Plot

Show the relationship between two continuous variables:
Each data point’s optional label is shown in the tooltip on hover.

Example: Bubble Chart

A scatter plot with a size dimension — useful for plotting three variables at once:
The third dimension is encoded as bubble radius via r on each data point.

Example: Choropleth Map

Color geographic regions by value. map_type is "us_states" or "world":
For US states, x is the full state name (e.g. "California"). For world maps, use "map_type": "world" and country names.

Example: Heatmap

A 2D grid where color encodes value. Useful for things like correlation matrices or activity by day-and-hour:
Heatmap takes a flat data array of {x, y, v} points (not a datasets list). v is the value used to determine color intensity.

Example: Box Plot

Show the statistical distribution (min, Q1, median, Q3, max) of values across categories. Provide raw values per category — quartiles are computed for you:
Box plot uses categories (not datasets) and each category has a values array of raw numbers.

Example: Treemap

Show hierarchical data as area-proportional rectangles — good for spend breakdowns or composition:
Each rectangle’s area is proportional to its y value.

Example: Waterfall

Show how a starting value changes through a series of additions and subtractions to reach an ending value. Use is_anchor: true for totals/subtotals (bars that start at zero):
By default, positive deltas are green and negative deltas are red. Anchor bars (is_anchor: true) are drawn as solid bars rising from zero.

Example: Sankey

Show directed flows between nodes — revenue splitting into cost and profit branches, a user funnel, energy flow, or any weighted graph. Provide a list of nodes and a list of links; every link’s source and target must reference a node id. Links must form a DAG (no cycles or self-loops); duplicate (source, target) pairs are summed.
Each flow is colored by its target node’s polarity: positive renders green, negative red, and neutral (the default) gray. Use this to make a profit-vs-cost story read at a glance — leave upstream/source nodes neutral so only the meaningful splits carry color.

Sankey fields

Example: Marimekko

Show a two-level part-to-whole breakdown as a mosaic of variable-width stacked columns — market share by region and brand, spend by department and category, or contract obligations by agency and vendor. Each column’s width is proportional to its total, and each stacked segment’s height is its share within that column. Marimekko takes the same flat data array of {x, y, v} points as the heatmap: x is the column (X dimension), y is the stacked segment (Y dimension), and v is the cell magnitude.
Cells that share an (x, y) pair are summed first; a pair is then dropped only if its net value is non-positive (so a downward adjustment nets against a positive value in the same cell rather than being dropped on its own). The largest top_n_columns columns and, within each, the largest top_m_segments segments render individually; everything else rolls into an “Other” column / “Other” segment so the mosaic always conserves the total. Segments are colored from the theme palette and labeled on the chart canvas (no separate legend).

Marimekko fields

Combining Multiple Components

Cards can contain multiple components stacked together. This lets you build richer visualizations by pairing related data.

Financial Boxes + Timeseries Chart

Pair summary metrics with a trend chart:

Header + Bar Chart

Add a styled header above any chart:
Components render in the order they appear in the components array - top to bottom on the card.

Available Components