Skip to main content
Read a site’s visitor sessions and their timelines, explore the paths visitors take (Sankey flow, journey funnel, path exploration), and read cohort retention. A site is addressed by {siteKey} (UUID or domain). All endpoints require Authorization: Bearer {token}. These are reporting reads: they accept the same date-range inputs (range/from/to) and dashboard dimension filters (country, path, browser, …) documented in Conventions — read that page for the preset range values, the filter key allowlist, the response envelope, and the shared error codes. Only the pieces unique to sessions, journeys, and retention are documented below.

List sessions

One row per visitor session — the HTTP twin of the web Sessions report. Paginated: keeps the standard data/meta/links envelope at a fixed page size of 25 (?page= only, no ?per_page=). Path parameters Query parameters Each row is aggregated over the resolved range and filters — unlike the session timeline below, whose aggregate covers the whole session regardless of range/filters. A session whose only in-range activity is the automatic engagement beacon is excluded (not a real session). Response — each item in data: Status: 200 OK.

Get a session timeline

One session’s aggregate plus its paged chronological event timeline — the HTTP twin of the web Sessions expand-detail. By design, the session aggregate here covers the WHOLE session, not just the resolved range/filters (there is no range/filters input on this endpoint) — different from the list row above, which is range/filter-scoped. The two can therefore report different numbers for the same session. Path parameters Query parameters Response Each entry in events: Status: 200 OK (a null session still returns 200, not 404, unless the site itself is foreign to the team).

Journey flow (Sankey)

The top most-followed FULL visitor sequences, steps columns deep — feeds the dashboard’s Sankey diagram. POST because the request carries a stepFilters payload, not because it writes anything. IMPORTANT — filter transport. Dashboard dimension filters (country, path, …) ride the query string here, exactly like every other reporting read — never the request body. Sending a query, filters, or filter key in the JSON body is rejected with 422 Unprocessable Entity (a validation error naming that field) rather than being silently ignored, so a client mistake fails loudly instead of quietly returning unfiltered data. Path parameters Body parameters Response
Status: 200 OK (422 when a body filter key is sent, or steps/limit are out of bounds).

Journey funnel

Cumulative per-step visitor counts across an ad hoc sequence of steps — the same funnel chart component the saved Funnels report uses, run over free-form steps instead of a saved funnel’s goal list. Same query-string-only filter rule as Journey flow above: a query/filters/filter body key is rejected with 422. Body parameters Response
Status: 200 OK (422 when fewer than 2 steps, an unrecognized direction, or a body filter key).

Journey path exploration

GA4-style “Path Exploration”: the events that came immediately after (forward) or before (backward) a given step prefix, ranked by visitor count. Omit steps (or send an empty array) for the entry column — each visitor’s first (forward) or last (backward) event in the range. Same query-string-only filter rule as the endpoints above: a query/filters/filter body key is rejected with 422. Body parameters Response — a flat JSON array (not wrapped in an object) of: Status: 200 OK (422 on an unrecognized direction or a body filter key).

Retention cohorts

Cohort retention: visitors are grouped by the period (day or week) of their first-ever event, then each cohort’s activity is tracked forward, period by period. Retention has no dimension filters — only the date range and mode. Path parameters Query parameters Response
Status: 200 OK.