match_type + match_value/scroll_threshold), the same shape a goal uses, but stored on the funnel itself rather than referencing a saved goal. Deleting or editing a goal never affects a funnel, and duplicate steps are allowed since they aren’t shared records. A site is addressed by {siteKey} (UUID or domain). All endpoints require Authorization: Bearer {token}.
List funnels
Response — flat JSON array of:
Status:
200 OK.
Create a funnel
Each step object:
A step’s match operator is not settable through this endpoint — it always uses the type-dependent default (
is for an event step, matches_pattern for every other type), same as an unset goal match_operator.
The CreateFunnel Action enforces the 2–8 step bound, that each step’s value satisfies its type’s rules, and funnel-name uniqueness — each violation returns 422. Unlike goal ids, duplicate step definitions within the same funnel are allowed.
Response — the created funnel, including its ordered steps:
Status:
201 Created.
Update a funnel
name and steps are re-validated the same way as create (a missing/empty name and a steps array outside 2–8 both return 422), and strict_order is not merged with the current value: any request that omits it resets it to false. Always send the funnel’s complete definition — name, all steps, and the intended strict_order — on every update, not just the field you changed.
Path parameters
Body parameters
Response — the updated funnel (with
steps). Status: 200 OK.
Evaluate a funnel definition
Funnel row; read-only.
Body parameters
Dashboard filter dimensions (
country, path, utm_source, etc. — see Conventions) are read from the query string, not the body. A goal or prop_key/prop_value filter is accepted but ignored: a funnel is already its own set of match conditions, so goal/property filtering on top of it is dropped before evaluation.
Response — computed, not persisted:
Each
steps[] entry:
Status:
200 OK.
Funnel conversion (saved funnel)
404. Where Evaluate runs an unsaved definition from the body, this reads a persisted Funnel by id.
Path parameters
Query parameters — the shared date range (
range, or from/to) and dashboard filters, see Conventions and filters. As with evaluate, a goal or prop_key/prop_value filter is accepted but ignored.
Response — identical shape to Evaluate a funnel definition (the steps[] breakdown plus the entering/never-entering visitor totals). Status: 200 OK.
Delete a funnel
404. Status: 204 No Content.

