Funnels
Create, manage, and run funnel configurations through the REST API.
Create, manage, and run session-based Funnel configurations. Results include visitor counts, conversion rates, drop-off rates, and session IDs for the selected date window.
GET/rest/v1/funnels
Authorization
apiKey Ours Privacy API key
In: header
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/rest/v1/funnels"{ "entities": [ { "funnelId": "cc36c810-1122-4842-933f-6c41b39cda1a", "name": "string", "description": "string", "steps": [ { "stepId": "string", "name": "string", "eventName": "string", "order": 0, "filters": {}, "logic": { "AND": [ {} ], "OR": [ {} ], "NOT": {}, "condition": { "property": "string", "operator": "Is", "value": "string" } } } ], "funnelType": "SESSION_BASED", "utmFilters": {}, "globalLogic": { "AND": [ {} ], "OR": [ {} ], "NOT": {}, "condition": { "property": "string", "operator": "Is", "value": "string" } }, "conversionWindow": { "value": 1, "unit": "MINUTES" }, "countingMethod": "UNIQUES", "stepOrder": "EXACT", "watched": true, "status": "READY", "reportDateRange": { "from": "string", "to": "string" }, "createdAt": "string", "updatedAt": "string" } ]}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}POST/rest/v1/funnels
Authorization
apiKey Ours Privacy API key
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
application/json
curl -X POST "https://example.com/rest/v1/funnels" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "steps": [ { "name": "string", "eventName": "string", "order": 0 }, { "name": "string", "eventName": "string", "order": 0 } ] }'{ "funnelId": "cc36c810-1122-4842-933f-6c41b39cda1a", "name": "string", "description": "string", "steps": [ { "stepId": "string", "name": "string", "eventName": "string", "order": 0, "filters": {}, "logic": { "AND": [ {} ], "OR": [ {} ], "NOT": {}, "condition": { "property": "string", "operator": "Is", "value": "string" } } } ], "funnelType": "SESSION_BASED", "utmFilters": {}, "globalLogic": { "AND": [ {} ], "OR": [ {} ], "NOT": {}, "condition": { "property": "string", "operator": "Is", "value": "string" } }, "conversionWindow": { "value": 1, "unit": "MINUTES" }, "countingMethod": "UNIQUES", "stepOrder": "EXACT", "watched": true, "status": "READY", "reportDateRange": { "from": "string", "to": "string" }, "createdAt": "string", "updatedAt": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}GET/rest/v1/funnels/{id}
Authorization
apiKey Ours Privacy API key
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/rest/v1/funnels/string"{ "funnelId": "cc36c810-1122-4842-933f-6c41b39cda1a", "name": "string", "description": "string", "steps": [ { "stepId": "string", "name": "string", "eventName": "string", "order": 0, "filters": {}, "logic": { "AND": [ {} ], "OR": [ {} ], "NOT": {}, "condition": { "property": "string", "operator": "Is", "value": "string" } } } ], "funnelType": "SESSION_BASED", "utmFilters": {}, "globalLogic": { "AND": [ {} ], "OR": [ {} ], "NOT": {}, "condition": { "property": "string", "operator": "Is", "value": "string" } }, "conversionWindow": { "value": 1, "unit": "MINUTES" }, "countingMethod": "UNIQUES", "stepOrder": "EXACT", "watched": true, "status": "READY", "reportDateRange": { "from": "string", "to": "string" }, "createdAt": "string", "updatedAt": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}PATCH/rest/v1/funnels/{id}
Authorization
apiKey Ours Privacy API key
In: header
Path Parameters
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
application/json
curl -X PATCH "https://example.com/rest/v1/funnels/string" \ -H "Content-Type: application/json" \ -d '{}'{ "funnelId": "cc36c810-1122-4842-933f-6c41b39cda1a", "name": "string", "description": "string", "steps": [ { "stepId": "string", "name": "string", "eventName": "string", "order": 0, "filters": {}, "logic": { "AND": [ {} ], "OR": [ {} ], "NOT": {}, "condition": { "property": "string", "operator": "Is", "value": "string" } } } ], "funnelType": "SESSION_BASED", "utmFilters": {}, "globalLogic": { "AND": [ {} ], "OR": [ {} ], "NOT": {}, "condition": { "property": "string", "operator": "Is", "value": "string" } }, "conversionWindow": { "value": 1, "unit": "MINUTES" }, "countingMethod": "UNIQUES", "stepOrder": "EXACT", "watched": true, "status": "READY", "reportDateRange": { "from": "string", "to": "string" }, "createdAt": "string", "updatedAt": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}DELETE/rest/v1/funnels/{id}
Authorization
apiKey Ours Privacy API key
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/rest/v1/funnels/string"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "deleted": true}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}GET/rest/v1/funnels/{id}/results
Authorization
apiKey Ours Privacy API key
In: header
Path Parameters
Query Parameters
Inclusive lower bound of the analysis window, as a UTC calendar day in YYYY-MM-DD format. The window may span at most 31 days including both endpoints.
^\d{4}-\d{2}-\d{2}$Inclusive upper bound of the analysis window, as a UTC calendar day in YYYY-MM-DD format. Must be on or after from, and the window may span at most 31 days including both endpoints.
^\d{4}-\d{2}-\d{2}$Restrict the funnel to sessions on a device class. MOBILE matches phone sessions; DESKTOP matches every session that is not a phone, tablet, TV, console, wearable, XR, or embedded device. ALL (the default) applies no device filter.
"ALL"Value in
- "DESKTOP"
- "MOBILE"
- "ALL"
Accepted for backward compatibility but NOT applied. Funnel sessions carry a single attribution set, so there is no initial vs. last-touch distinction to select between.
Value in
- "INITIAL"
- "LAST_TOUCH"
Restrict the funnel to sessions whose utm_source exactly matches this value.
1 <= length <= 512Restrict the funnel to sessions whose utm_medium exactly matches this value.
1 <= length <= 512Restrict the funnel to sessions whose utm_campaign exactly matches this value.
1 <= length <= 512Restrict the funnel to sessions whose utm_content exactly matches this value.
1 <= length <= 512Restrict the funnel to sessions whose utm_term exactly matches this value.
1 <= length <= 512Accepted for backward compatibility but NOT applied — there is no campaign-name dimension on funnel sessions. Use utmCampaign instead.
1 <= length <= 512Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/rest/v1/funnels/string/results?from=2026-06-01&to=2026-06-30"{ "steps": [ { "stepNumber": 0, "visitorCount": 0, "conversionCount": 0, "conversionRate": 0, "dropOffRate": 0, "overallConversionRate": 0, "avgTimeToNextStep": 0, "sessionIds": [ "string" ], "dropOffSessionIds": [ "string" ] } ], "totalVisitors": 0, "overallConversionRate": 0, "overallAvgTimeToConversion": 0, "warning": "Ignored 1 unusable step condition."}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}{ "error": "string", "details": "string"}How is this guide?

