"Best analytics tool I've used in 14 years"

Create funnel

POST https://datafa.st/api/v1/admin/websites/{websiteId}/funnels

Create a funnel with 2 to 8 steps.

Request

Authentication

  • dft_ account token with funnels:write.

Path parameters

ParameterTypeDescription
websiteIdstringWebsite ObjectId used by account tokens to choose which website to query or manage. Website ObjectId. The caller token must have access to this website.

Body parameters

FieldTypeRequiredDescription
namestringYesHuman-readable name for the resource or event. The exact meaning depends on the endpoint.
stepsobject[]YesOrdered list of 2 to 8 steps.
steps[].namestringYesHuman-readable name for the resource or event. The exact meaning depends on the endpoint.
steps[].typepageview or goalYesStep matching mode.
steps[].urlstringRequired for pageviewPage path or URL matched by a pageview step.
steps[].goalNamestringRequired for goalGoal name. Lowercase letters, numbers, underscores, hyphens, and colons only. Max 32 characters.

Response

Returns a JSON object with status and endpoint-specific fields.

Response fields

FieldTypeDescription
data[]._idstringFunnel ObjectId.
data[].websiteIdstringWebsite ObjectId used by account tokens to choose which website to query or manage.
data[].namestringHuman-readable name for the resource or event. The exact meaning depends on the endpoint.
data[].slugstringGenerated slug.
data[].stepsobject[]Ordered funnel steps.
data[].steps[].idstringStep ID.
data[].steps[].namestringHuman-readable name for the resource or event. The exact meaning depends on the endpoint.
data[].steps[].typestringpageview or goal.
data[].steps[].urlstringPage URL/path for pageview steps.
data[].steps[].goalNamestringGoal name for goal steps.
data[].isActivebooleanWhether the funnel is active.

Errors

Common errors include 400 for invalid input, 401 for missing or invalid tokens, 403 for missing permissions or website access, 404 for missing resources, and 500 for server errors.

✍️ Something missing? Suggest features.

🤖 AI agent or LLM? Read this page as markdown

Example request
curl -X POST "https://datafa.st/api/v1/admin/websites/{websiteId}/funnels" \
  -H "Authorization: Bearer dft_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"Signup funnel","steps":[{"name":"Landing","type":"pageview","url":"/"},{"name":"Signup","type":"goal","goalName":"signup"}]}'
Success response
{
  "status": "success",
  "data": [{
    "_id": "665f0b3c4d2e1a0012345678",
    "websiteId": "665f0b3c4d2e1a0012345678",
    "name": "Signup funnel",
    "slug": "signup-funnel",
    "steps": [
      { "id": "landing", "name": "Landing", "type": "pageview", "url": "/" },
      { "id": "signup", "name": "Signup", "type": "goal", "goalName": "signup" }
    ],
    "isActive": true,
    "createdAt": "2026-05-21T00:00:00.000Z"
  }]
}