---
title: "POST /v1/events/properties | Documentation - Vemetric"
description: "List event properties"
url: https://vemetric.com/docs/api/endpoints/post-v1-events-properties
---

# List event properties

Returns the property names of one or more custom events, e.g. to group or filter by them with the \`event:prop:<name>\` token.

* * *

Method

POST

Path

/v1/events/properties

This endpoint lists the property names of one or more custom events, for example the `plan` property of a `signup` event, together with how many events and unique users have each property in the given date range. You can pass up to 25 event names at once, and get back one property list per event, sorted by the number of events that have each property. Events without properties in the period come back with an empty list.

Use the returned names to group by an event property with `"groupBy": ["event:prop:<name>"]` in the [query endpoint](https://vemetric.com/docs/api/endpoints/post-v1-analytics-query), or to filter by it with an event filter. Grouping by a property together with an event filter for the event gives you the users and events per property value (see the “Breakdown of an event property” example there). To find the names of your custom events, use the [filter values endpoint](https://vemetric.com/docs/api/endpoints/post-v1-filters-values) with the `event:name` field.

## Examples

Below you can see several examples of how to use this endpoint. Further down this page, you can find a [detailed reference](#request-body) of all the available options you can pass.

Copy the JSON body of any of these examples, and use it in a `POST` request to `https://api.vemetric.com/v1/events/properties` with your API key.

```json
{
  "eventNames": ["signup"],
  "dateRange": "30days"
}
```

```json
{
  "eventNames": ["signup", "purchase", "invite_sent"],
  "dateRange": "30days"
}
```

```json
{
  "eventNames": ["signup"],
  "dateRange": "7days",
  "filters": [
    {
      "type": "location",
      "country": {
        "operator": "oneOf",
        "value": ["DE"]
      }
    }
  ]
}
```

```json
{
  "eventNames": ["purchase"],
  "dateRange": ["2026-01-01", "2026-01-31"],
  "limit": 50,
  "offset": 50
}
```

## Headers

Authorization

required

Project or organization API key (starts with `vem_`), created in the project or organization settings on the API tab. Organization keys name the project of each request in the `X-Vemetric-Project` header.

Example: `Bearer vem_xxxxxxxxxxxx`

X-Vemetric-Project

optional

ID of the project the request is about. Required for organization keys; optional for project keys (must be the key's project if sent).

Example: `1234567890123456`

## Request Body (required)

application/json object

`eventNames`

\* required

Description

Names of the custom events to list the properties of.

Type

array<string>

Example

\["signup","purchase"\]

* * *

`dateRange`

\* required

Description

Can be either one of the preset strings below, or an array with two date strings \[start, end\]. Date strings can be either in YYYY-MM-DD format or UTC ISO-8601 format with second precision.

Type

"live" | "1hr" | "24hrs" | "7days" | "30days" | "3months" | "6months" | "1year" | array<string, string>

Example

\["2026-01-01T12:00:00Z","2026-01-31T12:00:00Z"\]

* * *

`filters`

Description

Optional filters to only count events matching them.

Type

array<object>

Show nested properties (12)

`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`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

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`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

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`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

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`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

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`

\* required

Description

Event property key inside custom event data.

Type

string

Example

"provider"

* * *

`value`

\* required

Description

Event property value to compare against.

Type

string

Example

"github"

* * *

`operator`

\* required

Description

String matching operator for `value`.

Type

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

Example

"eq"

* * *

* * *

* * *

`type: user`

Description

Ability to filter for either anonymous or identified users. This is useful when you want to include only known users (for example, for a retention analysis) or only anonymous users (for example, to analyze new visitor behavior).

Type

object

Default

"user"

Example

{"type":"user","anonymous":true}

Show nested properties (1)

`anonymous`

\* required

Description

Filter for anonymous (`true`) or identified (`false`) users.

Type

boolean

Example

true

* * *

* * *

`type: location`

Description

Filter by geographic location fields.

Type

object

Default

"location"

Example

{"type":"location","country":{"operator":"oneOf","value":\["US","DE"\]},"city":{"operator":"oneOf","value":\["Berlin"\]}}

Show nested properties (2)

`country`

Description

Filter by one or more country codes (ISO-3166 alpha-2, e.g. "US").

Type

object

Show nested properties (2)

`value`

\* required

Description

List of values to filter by

Type

array<string>

* * *

`operator`

\* required

Description

Operator to apply for the list filter. The "any" operator means that any value is accepted and effectively disables the filter. To require a value, use "noneOf" with \[""\].

Type

"any" | "oneOf" | "noneOf"

* * *

* * *

`city`

Description

Filter by one or more city names.

Type

object

Example

{"value":\["Berlin","New York"\],"operator":"oneOf"}

Show nested properties (2)

`value`

\* required

Description

List of values to filter by

Type

array<string>

* * *

`operator`

\* required

Description

Operator to apply for the list filter. The "any" operator means that any value is accepted and effectively disables the filter. To require a value, use "noneOf" with \[""\].

Type

"any" | "oneOf" | "noneOf"

* * *

* * *

* * *

`type: referrer`

Description

Filter by referrer name.

Type

object

Default

"referrer"

Example

{"type":"referrer","operator":"eq","value":"Google"}

Show nested properties (2)

`value`

\* required

Description

Referrer value to match, as returned when grouping by `referrer` (e.g. "Google"). An empty string matches visits without a referrer and visits from the project's own domain (referrer type `internal`). For visits without a referrer only, filter by the referrer type `none`.

Type

string

Example

"Google"

* * *

`operator`

\* required

Description

String matching operator for `value`.

Type

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

Example

"eq"

* * *

* * *

`type: referrerUrl`

Description

Filter by referrer URL.

Type

object

Default

"referrerUrl"

Example

{"type":"referrerUrl","operator":"contains","value":"google.com"}

Show nested properties (2)

`value`

\* required

Description

Referrer URL value to match.

Type

string

Example

"https://google.com"

* * *

`operator`

\* required

Description

String matching operator for `value`.

Type

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

Example

"contains"

* * *

* * *

`type: referrerType`

Description

Filter by referrer category/type.

Type

object

Default

"referrerType"

Example

{"type":"referrerType","operator":"oneOf","value":\["search"\]}

Show nested properties (2)

`value`

\* required

Description

List of referrer types to match: `none` (no referrer: typed in, bookmarks, apps), `search`, `social`, `llm`, `email`, `paid`, `internal` (came from a page on the project's own domain, e.g. a link from your app to your website; `direct` is accepted as an old name) or `unknown` (a website or source that isn't in Vemetric's list of known sources; visits without a referrer are `none`).

Type

array<string>

Example

\["search","social"\]

* * *

`operator`

\* required

Description

List matching operator for `value`. To require a value, use "noneOf" with `[""]`.

Type

"any" | "oneOf" | "noneOf"

Example

"oneOf"

* * *

* * *

`type: utmTags`

Description

Filter by one or more UTM parameters.

Type

object

Default

"utmTags"

Example

{"type":"utmTags","utmSource":{"operator":"eq","value":"google"},"utmMedium":{"operator":"eq","value":"cpc"}}

Show nested properties (5)

`utmCampaign`

Description

Filter by UTM campaign.

Type

object

Show nested properties (2)

`value`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

`utmContent`

Description

Filter by UTM content.

Type

object

Show nested properties (2)

`value`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

`utmMedium`

Description

Filter by UTM medium.

Type

object

Show nested properties (2)

`value`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

`utmSource`

Description

Filter by UTM source.

Type

object

Show nested properties (2)

`value`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

`utmTerm`

Description

Filter by UTM term.

Type

object

Show nested properties (2)

`value`

\* required

Description

Value to filter by

Type

string

* * *

`operator`

\* required

Description

Operator to apply for the string filter. "eq" means equals, "notEq" means not equals. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

* * *

`type: browser`

Description

Filter by browser.

Type

object

Default

"browser"

Example

{"type":"browser","operator":"oneOf","value":\["Chrome"\]}

Show nested properties (2)

`value`

\* required

Description

List of browser names to match.

Type

array<string>

Example

\["Chrome","Safari"\]

* * *

`operator`

\* required

Description

List matching operator for `value`. To require a value, use "noneOf" with `[""]`.

Type

"any" | "oneOf" | "noneOf"

Example

"oneOf"

* * *

* * *

`type: device`

Description

Filter by device type.

Type

object

Default

"device"

Example

{"type":"device","operator":"oneOf","value":\["desktop"\]}

Show nested properties (2)

`value`

\* required

Description

List of device types to match.

Type

array<string>

Example

\["desktop","mobile"\]

* * *

`operator`

\* required

Description

List matching operator for `value`. To require a value, use "noneOf" with `[""]`.

Type

"any" | "oneOf" | "noneOf"

Example

"oneOf"

* * *

* * *

`type: os`

Description

Filter by operating system.

Type

object

Default

"os"

Example

{"type":"os","operator":"oneOf","value":\["macOS"\]}

Show nested properties (2)

`value`

\* required

Description

List of operating system names to match.

Type

array<string>

Example

\["macOS","Windows"\]

* * *

`operator`

\* required

Description

List matching operator for `value`. To require a value, use "noneOf" with `[""]`.

Type

"any" | "oneOf" | "noneOf"

Example

"oneOf"

* * *

* * *

`type: funnel`

Description

Filter users based on funnel step completion.

Type

object

Default

"funnel"

Example

{"type":"funnel","id":"550e8400-e29b-41d4-a716-446655440000","step":1,"operator":"completed"}

Show nested properties (3)

`id`

\* required

Description

Funnel ID to evaluate for completion status.

Type

string

Example

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

* * *

`step`

\* required

Description

Zero-based funnel step index to evaluate.

Type

integer

Example

1

* * *

`operator`

\* required

Description

Whether users must have completed or not completed the selected step.

Type

"completed" | "notCompleted"

Example

"completed"

* * *

* * *

* * *

`filtersOperator`

Description

Operator to apply between multiple filters.

Type

"and" | "or"

Default

"and"

* * *

`limit`

Description

Limits the number of returned properties per event. Max value is 1000.

Type

integer

Default

100

* * *

`offset`

Description

Number of properties to skip per event from the start of the result set, to implement pagination.

Type

integer

Default

0

* * *

## Responses

200 Success

application/json

`period`

Description

Type

object

`from`

Description

Resolved UTC start timestamp for the query window.

Type

string<pattern:^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$>

Example

"2026-01-19T12:30:00Z"

* * *

`to`

Description

Resolved UTC end timestamp for the query window.

Type

string<pattern:^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$>

Example

"2026-01-19T12:30:00Z"

* * *

* * *

`query`

Description

Type

object

`eventNames`

Description

Echo of the incoming `eventNames` request field.

Type

array<string>

* * *

`dateRange`

Description

Echo of the incoming `dateRange` request field.

Type

"live" | "1hr" | "24hrs" | "7days" | "30days" | "3months" | "6months" | "1year" | array<string, string>

Example

\["2026-01-01T12:00:00Z","2026-01-31T12:00:00Z"\]

* * *

`filters`

Description

Echo of the incoming `filters` request field.

Type

array<object>

Show nested properties (12)

`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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

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"

* * *

* * *

* * *

`type: user`

Description

Ability to filter for either anonymous or identified users. This is useful when you want to include only known users (for example, for a retention analysis) or only anonymous users (for example, to analyze new visitor behavior).

Type

object

Default

"user"

Example

{"type":"user","anonymous":true}

Show nested properties (1)

`anonymous`

Description

Filter for anonymous (`true`) or identified (`false`) users.

Type

boolean

Example

true

* * *

* * *

`type: location`

Description

Filter by geographic location fields.

Type

object

Default

"location"

Example

{"type":"location","country":{"operator":"oneOf","value":\["US","DE"\]},"city":{"operator":"oneOf","value":\["Berlin"\]}}

Show nested properties (2)

`country`

Description

Filter by one or more country codes (ISO-3166 alpha-2, e.g. "US").

Type

object

Show nested properties (2)

`value`

Description

List of values to filter by

Type

array<string>

* * *

`operator`

Description

Operator to apply for the list filter. The "any" operator means that any value is accepted and effectively disables the filter. To require a value, use "noneOf" with \[""\].

Type

"any" | "oneOf" | "noneOf"

* * *

* * *

`city`

Description

Filter by one or more city names.

Type

object

Example

{"value":\["Berlin","New York"\],"operator":"oneOf"}

Show nested properties (2)

`value`

Description

List of values to filter by

Type

array<string>

* * *

`operator`

Description

Operator to apply for the list filter. The "any" operator means that any value is accepted and effectively disables the filter. To require a value, use "noneOf" with \[""\].

Type

"any" | "oneOf" | "noneOf"

* * *

* * *

* * *

`type: referrer`

Description

Filter by referrer name.

Type

object

Default

"referrer"

Example

{"type":"referrer","operator":"eq","value":"Google"}

Show nested properties (2)

`value`

Description

Referrer value to match, as returned when grouping by `referrer` (e.g. "Google"). An empty string matches visits without a referrer and visits from the project's own domain (referrer type `internal`). For visits without a referrer only, filter by the referrer type `none`.

Type

string

Example

"Google"

* * *

`operator`

Description

String matching operator for `value`.

Type

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

Example

"eq"

* * *

* * *

`type: referrerUrl`

Description

Filter by referrer URL.

Type

object

Default

"referrerUrl"

Example

{"type":"referrerUrl","operator":"contains","value":"google.com"}

Show nested properties (2)

`value`

Description

Referrer URL value to match.

Type

string

Example

"https://google.com"

* * *

`operator`

Description

String matching operator for `value`.

Type

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

Example

"contains"

* * *

* * *

`type: referrerType`

Description

Filter by referrer category/type.

Type

object

Default

"referrerType"

Example

{"type":"referrerType","operator":"oneOf","value":\["search"\]}

Show nested properties (2)

`value`

Description

List of referrer types to match: `none` (no referrer: typed in, bookmarks, apps), `search`, `social`, `llm`, `email`, `paid`, `internal` (came from a page on the project's own domain, e.g. a link from your app to your website; `direct` is accepted as an old name) or `unknown` (a website or source that isn't in Vemetric's list of known sources; visits without a referrer are `none`).

Type

array<string>

Example

\["search","social"\]

* * *

`operator`

Description

List matching operator for `value`. To require a value, use "noneOf" with `[""]`.

Type

"any" | "oneOf" | "noneOf"

Example

"oneOf"

* * *

* * *

`type: utmTags`

Description

Filter by one or more UTM parameters.

Type

object

Default

"utmTags"

Example

{"type":"utmTags","utmSource":{"operator":"eq","value":"google"},"utmMedium":{"operator":"eq","value":"cpc"}}

Show nested properties (5)

`utmCampaign`

Description

Filter by UTM campaign.

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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

`utmContent`

Description

Filter by UTM content.

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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

`utmMedium`

Description

Filter by UTM medium.

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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

`utmSource`

Description

Filter by UTM source.

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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

`utmTerm`

Description

Filter by UTM term.

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. "any" means no restriction and also matches users without a value; to require a value, use "notEq" with an empty string.

Type

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

* * *

* * *

* * *

`type: browser`

Description

Filter by browser.

Type

object

Default

"browser"

Example

{"type":"browser","operator":"oneOf","value":\["Chrome"\]}

Show nested properties (2)

`value`

Description

List of browser names to match.

Type

array<string>

Example

\["Chrome","Safari"\]

* * *

`operator`

Description

List matching operator for `value`. To require a value, use "noneOf" with `[""]`.

Type

"any" | "oneOf" | "noneOf"

Example

"oneOf"

* * *

* * *

`type: device`

Description

Filter by device type.

Type

object

Default

"device"

Example

{"type":"device","operator":"oneOf","value":\["desktop"\]}

Show nested properties (2)

`value`

Description

List of device types to match.

Type

array<string>

Example

\["desktop","mobile"\]

* * *

`operator`

Description

List matching operator for `value`. To require a value, use "noneOf" with `[""]`.

Type

"any" | "oneOf" | "noneOf"

Example

"oneOf"

* * *

* * *

`type: os`

Description

Filter by operating system.

Type

object

Default

"os"

Example

{"type":"os","operator":"oneOf","value":\["macOS"\]}

Show nested properties (2)

`value`

Description

List of operating system names to match.

Type

array<string>

Example

\["macOS","Windows"\]

* * *

`operator`

Description

List matching operator for `value`. To require a value, use "noneOf" with `[""]`.

Type

"any" | "oneOf" | "noneOf"

Example

"oneOf"

* * *

* * *

`type: funnel`

Description

Filter users based on funnel step completion.

Type

object

Default

"funnel"

Example

{"type":"funnel","id":"550e8400-e29b-41d4-a716-446655440000","step":1,"operator":"completed"}

Show nested properties (3)

`id`

Description

Funnel ID to evaluate for completion status.

Type

string

Example

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

* * *

`step`

Description

Zero-based funnel step index to evaluate.

Type

integer

Example

1

* * *

`operator`

Description

Whether users must have completed or not completed the selected step.

Type

"completed" | "notCompleted"

Example

"completed"

* * *

* * *

* * *

`filtersOperator`

Description

Echo of the incoming `filtersOperator` request field.

Type

"and" | "or"

* * *

`limit`

Description

Echo of the incoming `limit` request field.

Type

integer

* * *

`offset`

Description

Echo of the incoming `offset` request field.

Type

integer

* * *

* * *

`data`

Description

One property list per requested event, in the order of `eventNames`.

Type

array<object>

`eventName`

Description

Event name this property list belongs to.

Type

string

Example

"signup"

* * *

`pagination`

Description

Type

object

Show nested properties (3)

`limit`

Description

Applied page size for this event.

Type

integer

* * *

`offset`

Description

Applied page offset for this event.

Type

integer

* * *

`returned`

Description

Number of properties returned for this event.

Type

integer

* * *

* * *

`properties`

Description

Properties of the event, sorted by the number of events that have them (descending). Empty if the event has no properties in the period.

Type

array<object>

Show nested properties (3)

`name`

Description

Property name. Group or filter by it with the `event:prop:<name>` token.

Type

string

Example

"plan"

* * *

`events`

Description

Number of events in the period that have this property.

Type

integer

Example

312

* * *

`users`

Description

Number of unique users that sent an event with this property.

Type

integer

Example

280

* * *

* * *

* * *

400 Bad request - invalid request payload or parameters, or an organization key without the X-Vemetric-Project header

application/json

`error`

Description

Error details.

Type

object

`code`

Description

Machine-readable error code. `HTTP_ERROR` is returned for a malformed JSON body, `PROJECT_REQUIRED` for an organization key without the X-Vemetric-Project header.

Type

"VALIDATION\_ERROR" | "HTTP\_ERROR" | "PROJECT\_REQUIRED"

* * *

`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

* * *

* * *

403 Requested date range is not allowed for the current plan

application/json

`error`

Description

Error details.

Type

object

`code`

Description

Machine-readable error code.

Type

"PLAN\_LIMIT\_EXCEEDED"

* * *

`message`

Description

Human-readable error message.

Type

string

* * *

* * *

404 Project was not found or is not covered by the API key

application/json

`error`

Description

Error details.

Type

object

`code`

Description

Machine-readable error code.

Type

"PROJECT\_NOT\_FOUND"

* * *

`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

* * *

* * *
