Get Event Timeseries
Daily event count over the selected window.
filters to scope to a specific event, source, or location.
Set group_by to a breakdown dimension (channel_type, device, browser, os, location, referrer, ref, builder_codes, or any UTM column) to split the series by that dimension. When set, event_key carries the dimension’s value (empty → Direct) instead of the event type/name; the response keeps the top 100 values and buckets the rest as Others.
filters supports the string operators startsWith, endsWith, and contains (substring matches on text columns such as referrer, ref, utm_*) alongside the standard comparison operators. An unsupported operator now returns 400 Invalid query parameters rather than silently matching everything.Authorizations
Workspace API key (e.g. formo_xxx). Create one in the Formo dashboard under Team Settings > API.
Query Parameters
Inclusive start date (YYYY-MM-DD). Defaults to 7 days before date_to.
Inclusive end date (YYYY-MM-DD). Defaults to today.
Array of filter conditions, JSON-encoded in the query string. Entries use { field, op, value } and are combined with implicit AND. For example, filter traffic referred by Google with [{"field":"referrer","op":"contains","value":"google"}], or filter a page with [{"field":"page","op":"eq","value":"/pricing"}]. For in / nin, pass a non-empty array value such as ["chrome","firefox"] or a pipe-delimited string such as "chrome|firefox". Array string members cannot contain a literal |, which is reserved as the Tinybird membership separator. Optional one-level nested filters use the same canonical envelope and membership rule. On the user-aggregate endpoints (lifecycle, frequency) the same array also carries profile-family entries: profile metrics (net_worth_usd, volume, revenue, points), social identity fields, a lifecycle entry ({"field":"lifecycle","op":"in","value":"New|Power user"}), and resource entries using the stable fields chains.balance, apps.balance, tokens.balance, and labels.value with named qualifier properties (chain_id, app_id, token_address, scope, tag_id). The retired per-family parameters (socials, chain_filters, app_filters, token_filters, label_filters, profile_filters, lifecycle_filter) are rejected. Overview also accepts raw Data source filters with field set to channel, ops eq/neq/in/nin, and values web, mobile, api, import, server, onchain; this is distinct from acquisition Channel (channel_type) and the two can be combined.
Comma-separated list of event types to exclude from results (e.g. identify,detect).
Optional breakdown dimension. When set, event_key carries the dimension's value (empty → Direct) instead of the event type/name, so the series splits by that dimension. Top 100 values + Others.
channel_type, device, browser, os, location, referrer, ref, utm_source, utm_medium, utm_campaign, utm_content, utm_term, builder_codes Response
Event time-series
Analytics endpoint response. The data array contains the rows; the exact row shape depends on the endpoint. meta carries column type information for rendering, rows is the row count, and statistics holds query timing metadata.