Create a static List

Search Documentation

Search across all developer documentation

lists

Create a static List

POST /v1/lists
Auth required api.lists.manage

Creates a new managed static List definition. key is optional and defaults to a slug derived from the name (matching the dashboard create); it is the stable org-unique handle other calls reference the List by, and is immutable afterwards. A key already in use returns 409 conflict — including a key owned by a git-backed List (the repo owns that key). Definition-only: add members via the contacts surface.

Request body

Content type: application/json

name string required
key string optional

Optional on create — the org-unique slug (lowercase letters, digits, hyphen, underscore; starts with a letter; up to 63 chars). Defaults to a slug of the name. Ignored on edit.

description string optional

Responses

Errors follow the RFC 7807 problem format — see the error reference.

201 The created List application/json
id string<uuid> required
name string required
key string required

Org-unique slug, stable across renames.

description string required
source string enum required

How the List was created.

One of: api, ui, import, topic_export

member_count integer<int64> required

Cached count of current members.

origin string enum required

Where the definition is authored. managed Lists are editable via this API; git Lists are synced from a connected repository and read-only here (the repo wins).

One of: managed, git

source_path string optional

Repo-relative list-schema file the definition was synced from. Present only for git-backed Lists.

status string enum required

Provenance-only lifecycle state. archived marks a git-backed List whose key was removed from the repo; it never blocks membership or mailability, and the List reactivates in place if the key returns.

One of: active, archived

created_at string<date-time> required
updated_at string<date-time> required
401 Missing, malformed, or unknown API key application/problem+json
403 Key lacks the required scope or plan limit violated application/problem+json
409 The mutation is rejected by a state rule rather than a bad request — e.g. editing a git-backed (read-only) definition. The code is conflict. application/problem+json
422 Query parameter or path value failed validation application/problem+json
429 Per-org rate limit exceeded application/problem+json
500 Unexpected server-side failure. The code is internal_error. The request_id field can be quoted to SendOps support to investigate. application/problem+json