POST/api/v1/projects/{project_id}/subscribers/{subscriber_id}/resubscribe
resubscribe_subscriber
Subscribes an unsubscribed subscriber again, with fresh consent: active, or pending on a list with double opt-in; the suppression its unsubscribe left is removed.
- Call it
- when the person asked to get the list’s mail again.
- Needs
consent_source(where the consent came from), a live list, no other suppression of the list (remove the project’s or a manual one first,remove_suppression), and an admin key withproject_idor a project key with scopewrite(its own project; the argument is ignored).- Returns
- the subscriber after the call, the same as
POST /api/v1/projects/{project_id}/subscribers/{subscriber_id}/resubscribe.
Arguments
- object
-
consent_sourcestringrequiredWhere the new consent came from (a form, a support ticket); 1 to 256 characters, kept in the event
subscriber.resubscribed.example
signup form, 2026-11-07 -
subscriber_idstring · uuidrequiredThe subscriber’s id.
-
project_idstring · uuid | nullThe subscriber’s project. An admin key must pass it; a project key’s own project is used and this is ignored.
No other arguments are accepted.
Result
The result comes back as structuredContent, with the same JSON as a text block.
- object · all fields required
-
attributesmap of string → string | number | booleanThe 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 · email -
idstring · uuid -
list_idstring · uuidThe list the subscriber is on.
-
project_idstring · uuidThe subscriber’s project.
-
soft_bounce_streakinteger · uint32Soft bounces in a row; reset by a delivery (P4+).
≥ 0
-
sourcestringHow the subscriber was added:
api,importorconfirm. -
statusstringpending,active,unsubscribed,bouncedorcomplained. -
unsubscribed_atstring · date-time | nullWhen the subscriber unsubscribed;
nullotherwise. -
updated_atstring · date-timeThe latest change: creation, an attribute merge.
Errors
A failed call answers isError: true with a code from the same table as the HTTP API, and detail. How tools report errors
HTTP API
The same operation over HTTP: POST /api/v1/projects/{project_id}/subscribers/{subscriber_id}/resubscribe