GET/api/v1/projects/{project_id}/lists/{list_id}/subscribers
Needs scope: readMCP tool: list_subscribers
operationId list_subscribers
List a list's subscribers
The list’s subscribers, ordered by id, a page at a time; an optional
status filter. Needs scope read; an admin key may list any
project’s.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
project_idrequired |
path | string · uuid | The project’s id |
list_idrequired |
path | string · uuid | The list’s id |
status |
query | string | Only this status: pending, active, unsubscribed, bounced, complained |
limit |
query | integer · int64
1–500 |
Page size, 1 to 500; default 50 |
cursor |
query | string | next_cursor of the previous page |
Request body
None.
Responses
200
One page
- SubscriberList object · all fields required
-
itemsarray of SubscriberOrdered by id.
12 fields
- Subscriber object · all fields required
-
attributesobjectThe subscriber’s attributes, a map of string, number or boolean values.
-
confirmed_atstring · date-time | nullWhen the subscriber confirmed a double opt-in;
nullotherwise. -
created_atstring · date-time -
emailstring · emailexample
ann@example.com -
idstring · uuidexample
01900000-0000-7000-8000-000000000001 -
list_idstring · uuidThe list the subscriber is on.
-
project_idstring · uuidThe subscriber’s project.
-
soft_bounce_streakinteger · int32Soft bounces in a row; reset by a delivery (P4+).
≥ 0
-
sourcestringHow the subscriber was added:
api,importorconfirm. -
statusstringpending,active,unsubscribed,bouncedorcomplained.example
active -
unsubscribed_atstring · date-time | nullWhen the subscriber unsubscribed;
nullotherwise. -
updated_atstring · date-timeThe latest change: creation, an attribute merge, a status change.
-
next_cursorstring | nullPass as
cursorfor the next page;nullon the last page.
429
The key is over its rate limit, api.rate_limit_per_minute requests a minute on this node (rate_limited)
| Header | Type | Description |
|---|---|---|
Retry-After | integer | Seconds until the key’s next request passes; rounded up. |
504
Postwind’s storage did not answer within its time limit (storage_timeout). A change the request makes may still take effect: check before repeating it. A repeat with the same Idempotency-Key never runs it twice: it is 409 idempotency_key_in_progress until the key’s 24 h end