Skip to content

Configuration objects ​

Goals, funnels, segments and annotations have the same CRUD endpoints:

MethodPathScope
GET/properties/{pid}/{collection}config:read
POST/properties/{pid}/{collection}config:write
GET/properties/{pid}/{collection}/{id}config:read
PATCH/properties/{pid}/{collection}/{id}config:write
DELETE/properties/{pid}/{collection}/{id}config:write

{collection} is goals, funnels, segments or annotations.

Every object is {name, definition}:

Collectiondefinition
goals{type: "event" | "page" | "element" | "revenue", …}
segments{actor?, filters?}
annotations{date, note}
funnelsThe same fields as an ad-hoc funnel, without date_range

Examples:

json
// POST /properties/AH-1A2B3C/goals
{ "name": "Newsletter signup", "definition": { "type": "element", "el_name": "newsletter-subscribe" } }

// POST /properties/AH-1A2B3C/annotations
{ "name": "Autumn sale", "definition": { "date": "2026-10-12", "note": "Autumn sale starts" } }

// POST /properties/AH-1A2B3C/funnels
{ "name": "Checkout funnel", "definition": { "breakdown": "actor_family",
  "steps": [ { "type": "page", "path": "/p/*" }, { "type": "element", "el_name": "add-to-cart" }, { "type": "event", "name": "purchase" } ] } }

Creation returns 201 with the saved object (id, name, definition, created_by, created_at, updated_at).

GET /properties and GET /properties/{pid} return the properties the key can access with their settings (time zone, currency, hostnames, consent defaults).

Agents & humans, every visit counts!