{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
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
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)
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
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
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
mode.
Path parameters
Query parameters
Response
Status:
200 OK.

