Creating a Card
Create a card by posting your component configurations. One API call, one card.Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
components | array | Yes | List of component configurations (see Available Components) |
title | string | No | Card title (falls back to header component title if not provided) |
description | string | No | Card description |
source | string | No | Data source attribution displayed in footer |
image_ttl_minutes | integer | No | Minutes to keep a preview image available for download (1–1440). ZDR cards only. See Preview Images for ZDR Cards |
Embedding Your Card
Use theembed_url from the response in an iframe:
?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, setimage_ttl_minutes when creating the card:
image_url that renders a screenshot on demand. You can customize the image with query parameters:
| Parameter | Type | Description |
|---|---|---|
dark_mode | boolean | true for dark theme, false for light |
width | integer | Image width in pixels |
height | integer | Image height in pixels |
hideFooter | boolean | Hide the card footer |
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 thegeneric_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 separatestock_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
| Type | Rendering | Default Alignment |
|---|---|---|
string | Plain text | Left |
number | Formatted with units | Right |
date | Date values | Left |
percent | Percentage formatting | Right |
currency | Right-aligned with currency formatting (uses units field) | Right |
boolean | Checkmarks (✓/✗) with green/red colors | Center |
rating | Stars (★★★☆☆) clamped to 1-5 range | Center |
Table Config Fields
| Field | Type | Default | Description |
|---|---|---|---|
columns | array | required | Column definitions (see column types above) |
rows | array | required | Row data as list of objects. Keys should match column field values |
title | string | — | Optional title displayed above the table |
searchable | boolean | false | Enable search/filter functionality |
paginated | boolean | false | Enable pagination |
rows_per_page | integer | 25 | Number of rows per page when paginated |
initial_sort_field | string | — | Field to sort by initially |
initial_sort_order | "asc" | "desc" | "desc" | Initial sort direction |
highlight_best | boolean | false | Highlight the best value in numeric columns with a green background. For currency: lowest is best. For number/rating: highest is best. Only highlights when there is a unique winner |
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
| Field | Type | Required | Description |
|---|---|---|---|
events | array | Yes | List of timeline events (see below) |
title | string | No | Chart title |
series_color_theme | string | No | Color theme for events |
timeline_mode | "absolute" | "ordinal" | No | X-axis spacing mode. absolute spaces events proportional to real dates. ordinal spaces events evenly. Auto-detected if not set |
ordinal_label_prefix | string | No | Prefix for ordinal x-axis labels (e.g., "Week" renders as “Week 1”, “Week 2”) |
events array has:
| Field | Type | Required | Description |
|---|---|---|---|
start_date | string | Yes | Start date in ISO format (e.g., "2024-01-15") |
end_date | string | Yes | End date in ISO format (e.g., "2024-06-30") |
label | string | Yes | Event label |
value | string | No | Value to display (e.g., duration, cost) |
color | string | No | Override color for this event (hex format, e.g., "#FF5733") |
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: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: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: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:r on each data point.
Example: Choropleth Map
Color geographic regions by value.map_type is "us_states" or "world":
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: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: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:y value.
Example: Waterfall
Show how a starting value changes through a series of additions and subtractions to reach an ending value. Useis_anchor: true for totals/subtotals (bars that start at zero):
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 ofnodes 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.
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
| Field | Required | Description |
|---|---|---|
nodes | yes | List of nodes (min 2). Each has id (canonical key) and label (display string), plus optional polarity. |
nodes[].polarity | no | positive, negative, or neutral (default). Sets the node and its incoming flow color. |
links | yes | List of directed flows (min 1). Each has source (node id), target (node id), and value (positive number). |
title | no | Chart title. |
units | no | Units for flow values (e.g. $, $B, %), used in tooltips. |
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
| Component | Description |
|---|---|
header | Card header with title and optional subtitle |
generic_timeseries | Line, bar, or scatter timeseries charts |
categorical_bar | Bar chart with categorical x-axis (regions, products, etc.) |
data_table_chart | Bar chart with auto-generated data table below |
financial_boxes | Financial metric boxes with values and growth indicators |
table | Data table with configurable columns (string, number, date, percent, currency, boolean, rating), sorting, formatting, and pagination |
timeline | Timeline chart showing events or periods along a time axis |
pie | Pie chart showing proportional data as slices of a circle |
histogram | Histogram chart showing frequency distribution of values |
scatter | Scatter plot showing relationships between two continuous variables |
bubble | Bubble chart (scatter plot with size dimension) for 3-variable data |
choropleth | Choropleth map showing geographic data with color intensity by region |
heatmap | 2D heatmap with color intensity representing values |
boxplot | Box plot showing statistical distributions (min, Q1, median, Q3, max) |
treemap | Treemap chart showing hierarchical data as proportional rectangles |
waterfall | Waterfall chart showing incremental positive/negative changes |
sankey | Sankey diagram showing directed flows between nodes (revenue → cost/profit, funnels, energy flow) |