Skip to content

Funnels & paths ​

Funnels with page, event and clicked-element steps; paths; retention.

Generated

This page is generated from api/openapi/v1.yaml (OpenAPI 3.1.0, API version 1.0.0).

Run an ad-hoc funnel (page, event and clicked-element steps) ​

POST/v1/properties/{pid}/funnels/run

Scope: reports:read. Plan feature agent_funnels (Growth and above). Break it down by actor_family or navigation_mode to compare agents and humans step by step.

Parameters ​

NameInTypeRequiredDescription
pidpathstringyesProperty id.

Request body ​

FieldTypeRequiredDescription
date_range"last_7_days" | "last_28_days" | "last_90_days" | "this_month" | "last_month" | "yesterday" | "today" or objectA preset or an explicit range in the property time zone. Default last_28_days.
compare"previous_period" | "previous_year" or object
actor"all" | "humans_and_agents" | "humans" | "action_agents" | "indexing_bots" | "mixed_sessions"Who to count: all, humans_and_agents (excludes indexing bots), humans, action_agents (AI agents and automation), indexing_bots (crawlers, AI readers, monitoring) or mixed_sessions.
stepsarray of object or object or objectyes
unit"session" | "visitor"
windowintegerConversion window in seconds (alias of window_seconds).
window_secondsinteger
mode"closed" | "open"
strict_orderboolean
breakdown"none" | "actor_family" | "actor_type" | "actor_name" | "navigation_mode" | "device_type" | "channel_group" | "country"
json
{
  "date_range": "last_28_days",
  "breakdown": "actor_family",
  "steps": [
    {
      "type": "page",
      "path": "/p/*",
      "label": "Product page"
    },
    {
      "type": "element",
      "el_name": "add-to-cart",
      "label": "Add to cart"
    },
    {
      "type": "page",
      "path": "/checkout/shipping"
    },
    {
      "type": "element",
      "el_name": "delivery-slot-picker",
      "label": "Delivery slot"
    },
    {
      "type": "event",
      "name": "purchase"
    }
  ]
}

Responses ​

StatusDescription
200Funnel steps per breakdown value.
400Invalid body or query (invalid_request), with errors[] for validation failures.
401Missing, invalid, expired or revoked API key (unauthorized).
402The plan does not include the feature (plan_required) or a monthly quota is used up (quota_exceeded). required_plan is the cheapest plan that unlocks it.
403The key lacks the required scope (forbidden_scope).
404Unknown endpoint, or a property / object that does not exist or is not accessible with this key (not_found).

Response fields

FieldTypeRequiredDescription
funnelobject
specobject
breakdownsarray of object
cachedboolean
metaobject

Run a saved funnel ​

POST/v1/properties/{pid}/funnels/{id}/run

Scope: reports:read. Plan feature agent_funnels.

Parameters ​

NameInTypeRequiredDescription
pidpathstringyesProperty id.
idpathstringyes

Request body ​

FieldTypeRequiredDescription
date_range"last_7_days" | "last_28_days" | "last_90_days" | "this_month" | "last_month" | "yesterday" | "today" or objectA preset or an explicit range in the property time zone. Default last_28_days.
compare"previous_period" | "previous_year" or object
actor"all" | "humans_and_agents" | "humans" | "action_agents" | "indexing_bots" | "mixed_sessions"Who to count: all, humans_and_agents (excludes indexing bots), humans, action_agents (AI agents and automation), indexing_bots (crawlers, AI readers, monitoring) or mixed_sessions.

Responses ​

StatusDescription
200Funnel result.
401Missing, invalid, expired or revoked API key (unauthorized).
402The plan does not include the feature (plan_required) or a monthly quota is used up (quota_exceeded). required_plan is the cheapest plan that unlocks it.
403The key lacks the required scope (forbidden_scope).
404Unknown endpoint, or a property / object that does not exist or is not accessible with this key (not_found).

Response fields

FieldTypeRequiredDescription
funnelobject
specobject
breakdownsarray of object
cachedboolean
metaobject

Next or previous pages and clicked elements ​

POST/v1/properties/{pid}/paths/run

Scope: reports:read. Plan feature paths (Growth and above). With split_by_actor, nodes carry the actor family to show agent ↔ human hand-offs.

Parameters ​

NameInTypeRequiredDescription
pidpathstringyesProperty id.

Request body ​

FieldTypeRequiredDescription
date_range"last_7_days" | "last_28_days" | "last_90_days" | "this_month" | "last_month" | "yesterday" | "today" or objectA preset or an explicit range in the property time zone. Default last_28_days.
compare"previous_period" | "previous_year" or object
actor"all" | "humans_and_agents" | "humans" | "action_agents" | "indexing_bots" | "mixed_sessions"Who to count: all, humans_and_agents (excludes indexing bots), humans, action_agents (AI agents and automation), indexing_bots (crawlers, AI readers, monitoring) or mixed_sessions.
node"page" | "element" | "event" | "page_and_element"
direction"next" | "previous"
startstringStarting page, element label or event. Empty = session start.
depthinteger
split_by_actorboolean
collapse_repeatsboolean
limitinteger
json
{
  "date_range": "last_7_days",
  "node": "page_and_element",
  "direction": "next",
  "start": "/checkout/shipping",
  "depth": 4,
  "actor": "action_agents"
}

Responses ​

StatusDescription
200Paths with sunburst / sankey shapes.
400Invalid body or query (invalid_request), with errors[] for validation failures.
401Missing, invalid, expired or revoked API key (unauthorized).
402The plan does not include the feature (plan_required) or a monthly quota is used up (quota_exceeded). required_plan is the cheapest plan that unlocks it.
403The key lacks the required scope (forbidden_scope).
404Unknown endpoint, or a property / object that does not exist or is not accessible with this key (not_found).

Response fields

FieldTypeRequiredDescription
rowsarray of object
metaobject

Cohorts and retention ​

POST/v1/properties/{pid}/retention/run

Scope: reports:read. Plan feature cohorts (Pro and above). Default range: last 90 days.

Parameters ​

NameInTypeRequiredDescription
pidpathstringyesProperty id.

Request body ​

FieldTypeRequiredDescription
date_range"last_7_days" | "last_28_days" | "last_90_days" | "this_month" | "last_month" | "yesterday" | "today" or objectA preset or an explicit range in the property time zone. Default last_28_days.
compare"previous_period" | "previous_year" or object
actor"all" | "humans_and_agents" | "humans" | "action_agents" | "indexing_bots" | "mixed_sessions"Who to count: all, humans_and_agents (excludes indexing bots), humans, action_agents (AI agents and automation), indexing_bots (crawlers, AI readers, monitoring) or mixed_sessions.
granularity"day" | "week" | "month"

Responses ​

StatusDescription
200Retention matrix rows.
401Missing, invalid, expired or revoked API key (unauthorized).
402The plan does not include the feature (plan_required) or a monthly quota is used up (quota_exceeded). required_plan is the cheapest plan that unlocks it.
403The key lacks the required scope (forbidden_scope).
404Unknown endpoint, or a property / object that does not exist or is not accessible with this key (not_found).

Response fields

FieldTypeRequiredDescription
rowsarray of object
metaobject

Agents & humans, every visit counts!