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

List funnels

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

List active conversion funnels for a website. Query step-by-step results with Get funnel analytics.

Inactive (soft-deleted) funnels are excluded.

Request

Path parameters

websiteId
string
Website ObjectId. From List websites (_id field). Example: 665f0b3c4d2e1a0012345678.

Response

Returns a JSON object with status: "success" and endpoint-specific fields in data.

Response fields

data[]._id
string
Funnel ObjectId.
data[].websiteId
string
Website ObjectId used by account tokens to choose which website to query or manage.
data[].name
string
Human-readable name for the resource or event. The exact meaning depends on the endpoint.
data[].slug
string
Generated slug.
data[].steps
object[]
Ordered funnel steps.
data[].isActive
boolean
Whether the funnel is active.

Authentication

Use a dft_ account token with funnels:read.
A df_ website API key for the same website can also call this route when the path websiteId matches the key's website. Write access with a df_ key is capped at member level — owner-only actions such as team management require a dft_ token and owner role.

Errors

See API errors for the standard error envelope, auth failures, validation errors, permission errors, and rate limits.

✍️ Something missing? Suggest features.

🤖 AI agent or LLM? Read this page as markdown

Example request
curl -X GET "https://datafa.st/api/v1/admin/websites/{websiteId}/funnels" \
  -H "Authorization: Bearer dft_xxx"
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"
  }]
}