---
title: "GET /v1/funnels | Documentation - Vemetric"
description: "List funnels"
url: https://vemetric.com/docs/api/endpoints/get-v1-funnels
---

# List funnels

Returns the list of funnels for the authenticated project.

* * *

Method

GET

Path

/v1/funnels

This endpoint returns all available funnels for the project linked to your API key.

Use it to list funnel definitions and retrieve the IDs and metadata you need before querying funnel analytics.

## Headers

Authorization

required

Project API key (starts with `vem_`), created in the project settings on the API tab. Requests only return data of that key's project.

Example: `Bearer vem_xxxxxxxxxxxx`

## Responses

200 Success

application/json

`funnels`

Description

All available funnels for the authenticated project.

Type

array<object>

`id`

Description

Unique funnel id.

Type

string

Example

"550e8400-e29b-41d4-a716-446655440000"

* * *

`name`

Description

Funnel name.

Type

string

Example

"Signup Funnel"

* * *

`icon`

Description

Optional funnel icon.

Type

string | null

Example

"🚀"

* * *

`steps`

Description

Ordered funnel steps.

Type

array<object>

Show nested properties (3)

`id`

Description

Unique funnel step id.

Type

string

Example

"zvpslSIPFJQ6oiRCXPMm3"

* * *

`name`

Description

Name of the funnel step.

Type

string

Example

"Visited Landing Page"

* * *

`filter`

Description

Condition that determines when the funnel step is considered completed. Either a pageview or a custom event filter.

Type

object

Example

{"type":"page","origin":{"value":"https://example.com","operator":"eq"},"path":{"value":"/blog","operator":"startsWith"}}

Show nested properties (2)

`type: page`

Description

Filter based on specific page view properties, like the full URL (origin + path + hash) or its individual parts.

Type

object

Default

"page"

Example

{"type":"page","origin":{"value":"https://example.com","operator":"eq"},"path":{"value":"/blog","operator":"startsWith"}}

Show nested properties (3)

`origin`

Description

Filter based on the page origin (protocol + host). For example, "https://example.com".

Type

object

Show nested properties (2)

`value`

Description

Value to filter by

Type

string

* * *

`operator`

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals.

Type

"any" | "eq" | "notEq" | "contains" | "notContains" | "startsWith" | "endsWith"

* * *

* * *

`path`

Description

Filter based on the page path. For example, "/blog".

Type

object

Show nested properties (2)

`value`

Description

Value to filter by

Type

string

* * *

`operator`

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals.

Type

"any" | "eq" | "notEq" | "contains" | "notContains" | "startsWith" | "endsWith"

* * *

* * *

`hash`

Description

Filter based on the page hash. For example, "#section1".

Type

object

Show nested properties (2)

`value`

Description

Value to filter by

Type

string

* * *

`operator`

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals.

Type

"any" | "eq" | "notEq" | "contains" | "notContains" | "startsWith" | "endsWith"

* * *

* * *

* * *

`type: event`

Description

Filter by event name and/or event property values.

Type

object

Default

"event"

Example

{"type":"event","name":{"operator":"eq","value":"signup"},"properties":\[{"property":"plan","operator":"eq","value":"pro"}\]}

Show nested properties (2)

`name`

Description

Filter by event name.

Type

object

Show nested properties (2)

`value`

Description

Value to filter by

Type

string

* * *

`operator`

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals.

Type

"any" | "eq" | "notEq" | "contains" | "notContains" | "startsWith" | "endsWith"

* * *

* * *

`properties`

Description

Filter by one or more custom event properties.

Type

array<object>

Show nested properties (3)

`property`

Description

Event property key inside custom event data.

Type

string

Example

"provider"

* * *

`value`

Description

Event property value to compare against.

Type

string

Example

"github"

* * *

`operator`

Description

String matching operator for `value`.

Type

"any" | "eq" | "notEq" | "contains" | "notContains" | "startsWith" | "endsWith"

Example

"eq"

* * *

* * *

* * *

* * *

* * *

`createdAt`

Description

Funnel creation timestamp (ISO 8601).

Type

string

Example

"2026-03-01T10:00:00.000Z"

* * *

`updatedAt`

Description

Funnel last update timestamp (ISO 8601).

Type

string

Example

"2026-03-02T11:30:00.000Z"

* * *

* * *

400 Bad request - invalid request payload or parameters

application/json

`error`

Description

Error details.

Type

object

`code`

Description

Machine-readable error code. `HTTP_ERROR` is returned for a malformed JSON body.

Type

"VALIDATION\_ERROR" | "HTTP\_ERROR"

* * *

`message`

Description

Human-readable error message.

Type

string

* * *

`details`

Description

Per-field validation issues. Only present for `VALIDATION_ERROR`.

Type

array<object>

Show nested properties (2)

`field`

Description

Path to the invalid request field.

Type

string

Example

"groupBy.0"

* * *

`message`

Description

Validation error message for the field.

Type

string

* * *

* * *

* * *

401 Unauthorized - missing, malformed, invalid or revoked API key

application/json

`error`

Description

Error details.

Type

object

`code`

Description

Machine-readable error code.

Type

"UNAUTHORIZED"

* * *

`message`

Description

Human-readable error message.

Type

string

* * *

* * *

429 Rate limit exceeded - retry after the number of seconds in the Retry-After header

application/json

`error`

Description

Error details.

Type

object

`code`

Description

Machine-readable error code.

Type

"RATE\_LIMIT\_EXCEEDED"

* * *

`message`

Description

Human-readable error message.

Type

string

* * *

* * *

500 Unexpected internal error

application/json

`error`

Description

Error details.

Type

object

`code`

Description

Machine-readable error code.

Type

"INTERNAL\_ERROR"

* * *

`message`

Description

Human-readable error message.

Type

string

* * *

* * *
