Custom funnel
Evaluate an ad-hoc sequence of page or event steps without saving a funnel. Names default to matching values.
On this page
query_funnelAccess & permissions
Use an authorized read credential. Current membership and any elevated role described above still apply.
API keys default to their bound site. For multi-site OAuth connections, call list_projects and pass the intended projectId. Only approved sites are accessible.
Arguments
projectIdOptionalstring · uuid
Weeveo project id. Defaults to the key's project.
Validation pattern: see complete JSON Schema
rangeOptional"today" | "yesterday" | "7d" | "30d" | "90d" | "12mo" | "custom"
Date range preset; custom requires from and to.
Default: "30d"
fromOptionalstring · date
First local date, YYYY-MM-DD, for a custom range.
Validation pattern: see complete JSON Schema
toOptionalstring · date
Last local date, inclusive, for a custom range.
Validation pattern: see complete JSON Schema
trafficOptional"human" | "known_bot" | "suspicious" | "unknown" | "all"
Default: "human"
filtersOptionalobject[]
max items 20
filters[].fieldRequired within object"source" | "medium" | "url_path" | "referrer_domain" | "utm_source" | "utm_medium" | "utm_campaign" | "utm_term" | "utm_content" | "country" | "region" | "city" | "device_type" | "browser" | "os" | "event_name"
filters[].opRequired within object"is" | "is_not" | "contains"
filters[].valueRequired within objectstring
min length 1; max length 500
compareOptionalboolean
Include the previous period for deltas.
Default: true
stepsRequiredobject[]
min items 2; max items 8
steps[].nameOptionalstring
max length 80
steps[].typeRequired within object"pageview" | "event"
steps[].valueRequired within objectstring
min length 1; max length 200
windowSecondsOptionalinteger
Default: 86400
min 60; max 2592000
Nested fields are listed with dotted paths; array item fields use []. Defaults apply to omitted arguments. For unions and all validation details, use the complete schema below.
HTTP request
POST https://weeveo.com/api/v1/tools/query_funnel
Authorization: Bearer <YOUR_CREDENTIAL>
Content-Type: application/json
<JSON_ARGUMENT_OBJECT>Replace the placeholders with your server-side credential and a JSON object satisfying the schema. GET is also available for simple scalar arguments. Use POST for arrays and nested objects. These documentation pages never execute a request.
Complete input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"projectId": {
"description": "Weeveo project id. Defaults to the key's project.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"range": {
"default": "30d",
"description": "Date range preset; custom requires from and to.",
"type": "string",
"enum": [
"today",
"yesterday",
"7d",
"30d",
"90d",
"12mo",
"custom"
]
},
"from": {
"description": "First local date, YYYY-MM-DD, for a custom range.",
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"to": {
"description": "Last local date, inclusive, for a custom range.",
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"traffic": {
"default": "human",
"type": "string",
"enum": [
"human",
"known_bot",
"suspicious",
"unknown",
"all"
]
},
"filters": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"enum": [
"source",
"medium",
"url_path",
"referrer_domain",
"utm_source",
"utm_medium",
"utm_campaign",
"utm_term",
"utm_content",
"country",
"region",
"city",
"device_type",
"browser",
"os",
"event_name"
]
},
"op": {
"type": "string",
"enum": [
"is",
"is_not",
"contains"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"field",
"op",
"value"
]
}
},
"compare": {
"default": true,
"description": "Include the previous period for deltas.",
"type": "boolean"
},
"steps": {
"minItems": 2,
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"pageview",
"event"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"type",
"value"
]
}
},
"windowSeconds": {
"default": 86400,
"type": "integer",
"minimum": 60,
"maximum": 2592000
}
},
"required": [
"steps"
]
}Download all tool schemas or query authenticated GET /api/v1/tools for runtime discovery.
Response & errors
{
"tool": "query_funnel",
"result": "<tool-specific value>"
}The result placeholder above describes the response envelope, not a literal returned string or a universal result schema. Results vary by tool. Fields named Cents are minor currency units; use returned currency labels. Secrets from creation tools are one-time results and must be saved securely immediately.
Failures return an HTTP error status with an error message. See errors, limits and retries, common analytics arguments and permissions.
Still looking for an answer? Try troubleshooting or get in touch.