Create Chart
Add a new chart to a dashboard board with a SQL query and chart type. Supports line, bar, pie, funnel, and other visualization types.
Overview
Creates a new chart and attaches it to a board. Returns the full chart object on success. Thechart_type field controls which other request body fields are required or validated. Funnel charts derive SQL from steps and accept "SELECT 1" as the placeholder. User Paths charts derive SQL from settings.anchors, so omit query.
Request Fields
Chart Types
table
Renders query results in a paginated table. No axis fields needed.
number
Renders a single scalar value (KPI card). The query must return exactly 1 row × 1 column.
bar, line, and area
All three require x_axis and at least 1 column in y_axis. area requires exactly 1 column in y_axis when group_by is set.
pie
Requires exactly 1 column in y_axis. x_axis identifies the label column.
stacked
Requires x_axis, exactly 1 column in y_axis, and group_by.
Funnel Charts
Funnel charts measure step-by-step user conversion. The SQL is auto-generated fromsteps, so query must be the placeholder "SELECT 1". At least 2 steps are required.
The FunnelStep Object
Each step in the steps array has the following shape:
Filter Operators (StepFilterCondition)
settings for Funnel Charts
ConversionWindow
unit must be one of: hour · day · week (7 days).
breakdown values
device · browser · os · location · referrer · ref · utm_source · utm_medium · utm_campaign · utm_term · utm_content · builder_codes
The top categories are shown individually. The rest collapse into “Others”.
Funnel Examples
Basic 3-step closed funnel
With per-step property filters
Filter step 2 to MetaMask wallets on Ethereum mainnet:With breakdown by device
Open funnel with multi-value in filter
User Paths Charts
Visualize how users navigate your app through an ordered list of path anchors.settings.anchors requires at least one entry. One anchor produces an open-ended exploration; two or more constrain the path in order.
settings for User Paths Charts
Retention Charts
Measures how often users return over time. Omit thequery field; retention data is fetched automatically.
settings for Retention Charts
RetentionUserFilter:
null:
Validation Reference
Response
201 Created - returns the full chart object.
id with the Get Chart, Update Chart, and Delete Chart endpoints.
400 Bad Request - validation failed (missing required fields, invalid SQL, wrong step count, etc.). Branch on error.code; see Errors.
Overview
Creates a new chart and attaches it to a board. Returns the full chart object on success. Thechart_type field controls which other request body fields are required or validated. Funnel charts derive SQL from steps and accept "SELECT 1" as the placeholder. User Paths charts derive SQL from settings.anchors, so omit query.
Request Fields
Chart Types
table
Renders query results in a paginated table. No axis fields needed.
number
Renders a single scalar value (KPI card). The query must return exactly 1 row × 1 column.
bar, line, and area
All three require x_axis and at least 1 column in y_axis. area requires exactly 1 column in y_axis when group_by is set.
pie
Requires exactly 1 column in y_axis. x_axis identifies the label column.
stacked
Requires x_axis, exactly 1 column in y_axis, and group_by.
Funnel Charts
Funnel charts measure step-by-step user conversion. The SQL is auto-generated fromsteps, so query must be the placeholder "SELECT 1". At least 2 steps are required.
The FunnelStep Object
Each step in the steps array has the following shape:
Filter Operators (StepFilterCondition)
settings for Funnel Charts
ConversionWindow
unit must be one of: hour · day · week (7 days).
breakdown values
device · browser · os · location · referrer · ref · utm_source · utm_medium · utm_campaign · utm_term · utm_content · builder_codes
The top categories are shown individually. The rest collapse into “Others”.
Funnel Examples
Basic 3-step closed funnel
With per-step property filters
Filter step 2 to MetaMask wallet connections on Ethereum mainnet:With breakdown by device
Open funnel with multi-value in filter
User Paths Charts
Visualize how users navigate your app through an ordered list of path anchors.settings.anchors requires at least one entry. One anchor produces an open-ended exploration; two or more constrain the path in order.
settings for User Paths Charts
Retention Charts
Measures how often users return over time. Omit thequery field; retention data is fetched automatically.
settings for Retention Charts
RetentionUserFilter:
null:
Validation Reference
Response
201 Created - returns the full chart object.
id with the Get Chart, Update Chart, and Delete Chart endpoints.
400 Bad Request - validation failed (missing required fields, invalid SQL, wrong step count, etc.). Branch on error.code; see Errors.
Authorizations
Workspace API key (e.g. formo_xxx). Create one in the Formo dashboard under Team Settings > API.
Headers
Optional unique value (e.g. a UUID v4) that lets you safely retry POST/PUT/PATCH/DELETE requests. The first request runs normally; subsequent requests with the same key replay the stored response (status + body) for 24 hours, so retries can never double-create or double-charge. Two concurrent requests with the same key return 409 IDEMPOTENCY_IN_PROGRESS. Generate a fresh key per logical operation.
255Path Parameters
Body
Request body for creating a chart.
Project the chart belongs to.
Visualization type. Determines which other fields are required:
table, number, funnel, bar, line, area, pie, stacked, user_paths, retention Display name shown on the chart and board.
1SQL query that powers the chart.
funnel: pass"SELECT 1"; the actual query is auto-generated fromsteps.user_paths: omit it; the query is generated fromsettings.anchors.retention: omit it; data is fetched automatically.- All other types: required; must be a valid SQL string.
1Optional description.
Column name for the X axis. Required for bar, line, and stacked.
Column name(s) used as Y axis metrics.
bar/line: at least 1 element required.pie/stacked: exactly 1 element required.
Column to group / stack series by. Required for stacked.
Ordered list of funnel steps. Required for funnel (minimum 2 steps).
Each element is a FunnelStep; add property predicates in its canonical filters array (e.g. "filters": [{ "field": "rdns", "op": "eq", "value": "io.metamask" }]).
2Chart-type-specific configuration. The fields that apply depend on chart_type:
- funnel:
funnelType,conversionWindow,breakdown - user_paths:
anchors,maxSteps,nodesPerStep,conversionWindow,filters - retention:
entryFilter,retentionFilter,retentionUserFilters,retentionSignalType,retentionLabelSignal
Fields are optional at the schema level except where the selected chart type requires them. User Paths require at least one anchors entry. Retention requests must explicitly include entryFilter; use null for any event.
Response
Chart created
A saved chart attached to a board.
Visualization type.
table, number, funnel, bar, line, area, pie, stacked, user_paths, retention SQL query powering the chart. For funnel and retention charts this is a system-managed placeholder.
Column used as the X axis.
Column(s) used as Y axis metric(s).
Column used to group/stack series.
Ordered list of funnel steps. Only present when chart_type is funnel.
Type-specific configuration. See ChartSettings for all fields.