Skip to main content
POST
Create a list

Authorizations

Authorization
string
header
required

Project-scoped secret API key (sk_…). Pass in the Authorization: Bearer <key> header. Grants access to the project the key was issued for.

Body

application/json

Create a new list. The type discriminator chooses between dynamic (rule-driven) and static (manual) membership.

name
string
required

Human-readable list name.

Minimum string length: 1
Example:

"High-value customers"

type
enum<string>
required
Available options:
dynamic
rule
object
required

Membership rule tree. Members are materialised from this rule.

tags
string[] | null

Tags applied to the list. Used for organisation and filtering.

is_visible
boolean | null

When true, the list appears in the in-product UI list directory.

Response

The newly created list.

A static or dynamic group of users. Used to send campaigns and as a segment input.

id
integer
required

Numeric list identifier.

Example:

91

project_id
integer
required

Identifier of the project the list belongs to.

Example:

42

name
string
required

Human-readable list name.

Example:

"Newsletter subscribers — Q2 2026"

type
enum<string>
required

A static list has explicit members. A dynamic list is materialised from a rule tree.

Available options:
static,
dynamic
state
enum<string>
required

Current list state. loading while a refresh is in progress; ready once members are materialised.

Available options:
draft,
ready,
loading
version
integer
required

Monotonically incrementing version. Bumped on rule edits.

Example:

3

is_visible
boolean
required

Whether the list is shown in the in-product UI list directory.

created_at
string | null
required

Time the list was created. ISO 8601.

updated_at
string | null
required

Time the list was last modified. ISO 8601.

rule
object

Membership rule tree for dynamic lists. Absent on static lists.

rule_id
integer | null

Internal identifier of the persisted root rule, when present.

users_count
integer | null

Cached size of the list. May lag a few seconds behind reality.

Example:

12584

tags
string[] | null

Tags applied to the list. Used for organisation and filtering.

refreshed_at
string | null

Time the dynamic list was last refreshed.