Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Analytics

Create a funnel

Creates a funnel of 2 to 8 steps. Each step is a page view or a goal. A page matches exactly, by its start or by a part, and can be on one hostname only. A goal step counts the visitors who completed the goal, or who did not. A workspace has 50 funnels at most.

post/api/v1/analytics/funnels

Authorization

HeaderAuthorization: Bearer <API key>
Or the headerX-API-Key: <API key>
API keyMake one in Troopy under Settings > API keys. It acts as you, in its workspace.

Other ways to call it

CLItroopy analytics funnels create
MCP toolNone. Call it over REST or with the CLI.
Rate limit30 calls in 60 seconds, for each key
RetriesSend an Idempotency-Key header. A retry with the same key gets the first answer back, and the operation runs one time.

Body

application/json
name*string

At least 1 characters · At most 80 characters

steps*array<object>

At most 8 items

6 properties
kind*enum<string>

pagegoal

value*string

A path like /pricing, or a goal's name

At least 1 characters · At most 200 characters

matchenum<string>

Pages only: how the path matches

exactstarts_withcontains

Default "exact"

hostnamestring | null

Pages only: on this hostname alone

Default null

completedboolean

Goals only: false counts visitors who did not complete it after the step before

Default true

propertyobject | null

Goals only: the goal counts only when it has this property, such as plan pro

Default null

2 properties
name*string
value*string

At least 1 characters · At most 255 characters

hoursinteger | null

The visitor completes every step within this many hours of the first. Null: any time in the period

strictboolean

true: no other page between two steps

Response

201 · application/json
data*object
6 properties
id*string

A 24-character id

name*string
steps*array<object>
6 properties
kind*enum<string>

pagegoal

value*string

A path like /pricing, or a goal's name

At least 1 characters · At most 200 characters

match*enum<string>

Pages only: how the path matches

exactstarts_withcontains

Default "exact"

hostname*string | null

Pages only: on this hostname alone

Default null

completed*boolean

Goals only: false counts visitors who did not complete it after the step before

Default true

property*object | null

Goals only: the goal counts only when it has this property, such as plan pro

Default null

2 properties
name*string
value*string

At least 1 characters · At most 255 characters

hours*integer | null

The visitor completes every step within this many hours of the first. Null: any time in the period

strict*boolean

true: no other page between two steps

createdAt*string

ISO 8601 date and time

Errors

400 invalid_inputFix the field named in detail. Each operation's schema is in /api/v1/openapi.json.
401 unauthorizedSend an API key as `Authorization: Bearer tr_live_...`. Create one in Troopy under Settings.
403 forbiddenThe key lacks a scope this operation needs, or its owner lacks the role. detail says which; create a key with the scope, or ask an organization owner or admin.
409 conflictThis Idempotency-Key was used for a different request, or that request is still running. Use a new key for a new request.
429 rate_limitedWait the number of seconds in Retry-After, then retry.