Skip to content
IForevents Docs
IForevents Docs
HomeDashboardGitHubPrivacyTermsSecurityIntroduction
Support and SLA

Ordered step conversion

POST
/v1/analytics/funnel

Authorization

AuthorizationBearer <token>

Session token issued by the accounts service (or the legacy /v1/auth routes).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/analytics/funnel" \  -H "Content-Type: application/json" \  -d '{    "end": "2026-09-13T12:30:45Z",    "start": "2026-08-14T00:00:00Z",    "steps": [      "signup",      "project_created",      "first_event"    ],    "window_hours": 168  }'
{  "funnel": {    "counting": "unique_users",    "immature_users": 100,    "observed_until": "2026-09-13T12:30:45Z",    "overall_conversion_rate": 64,    "steps": [      {        "conversion_rate": 100,        "drop_off_rate": null,        "mature_users": 900,        "name": "signup",        "users": 1000      },      {        "conversion_rate": 64,        "drop_off_rate": 36,        "mature_users": 576,        "name": "project_created",        "users": 640      }    ],    "total_completed": 640,    "total_entered": 1000,    "window_hours": 168  }}
breakdown?

Split by a property: event scope reads the user's entry (step 1) event, the smallest value on a same-second tie; user scope reads the current profile. A missing value is the key "".

breakdown_limit?integer

Keys listed before the rest are summed into one Other series (key $other); 1 to 25, default 10. Keys rank by entrants, then key.

cohort_uuid?string

Count only the members of this saved cohort.

Formatuuid
counting?string
end?string
Formatdate-time
exclusions?array<>

At most 5. A user who did a matching event strictly after their from_step and strictly before their to_step (or, if they never reached it, before their window ends) is removed from the whole funnel.

start?string
Formatdate-time
steps*array<>

2 to 10 ordered steps. Each is an event name or an object {event, filters, match}; a step matches only events of its name that pass its filters (event or user scope, at most 10). A user converts a step only after the previous one.

window_hours?integer

Conversion window; defaults to 168 (7 days).