Subscribers
Update Subscriber
Update a subscriber’s details or fully unsubscribe them
PATCH
Update Subscriber
Update a subscriber’s first name, last name, status, tags, or custom attributes.
When you set
With
status to unsubscribed, Sequenzy runs the full unsubscribe workflow:
it unsubscribes the contact from all lists and cancels their active sequence enrollments.
You can also update by external ID with PATCH /api/v1/subscribers/external?externalId={externalId}.
Path Parameters
string
required
Subscriber email (URL encoded)
Query Parameters
string
External ID to use with
/subscribers/external. Use this route for IDs that
contain /.Request Body
string
First name, up to 255 Unicode characters. Omit to keep unchanged, or send
""
to clear. null is not accepted.string
New delivery email address. This is most useful on the external ID route.
string
New customer-owned external ID. The update fails with
409 if another
subscriber owns it.string
Last name, with the same limit and clear behavior as
firstName.string
IANA timezone identifier such as
America/New_York, stored as a native
profile field. Enables recipient-local campaign delivery. An invalid
identifier returns 400 VALIDATION_ERROR; null clears the stored value.string
Phone number in E.164 format (
+15551234567) or national format. Stored
normalized to E.164 on the native phone field, not as a custom attribute. An
invalid phone returns 400 VALIDATION_ERROR. Setting a phone does NOT
subscribe the contact to SMS - use smsConsent for that, and note that
changing the number resets SMS consent unless smsConsent is sent in the same
request. null or "" clears the phone, except on a phone-only (SMS) contact- clearing the only identity it has returns
400 VALIDATION_ERROR.
string
ISO 3166-1 alpha-2 country used to read a national-format
phone, such as
IT or US. Defaults to US. This is a parsing hint only: the stored
phoneCountry always comes from the parsed number, so it can never disagree
with the phone it belongs to. Sending it without phone returns 400 VALIDATION_ERROR.boolean
SMS marketing consent.
true sets the subscriber’s SMS status to subscribed
with consent source api - only send true when you have express written
consent. false sets it to unsubscribed. When omitted, SMS status stays
unchanged unless phone changes, which resets consent because it belonged to
the old number. Consent is never inferred from phone presence. See SMS &
MMS for the full consent model.string
Status:
active, unsubscribed, or bounced. Setting active resubscribes
the contact. Setting unsubscribed performs a full global unsubscribe.string[]
Replace all tags with this array
object
Custom attributes to update. By default this replaces the existing public
custom-attribute map.
string
default:"replace"
How to apply
customAttributes: replace replaces the existing public
custom-attribute map, while merge overwrites only the provided keys and
retains unspecified existing keys.customAttributesStrategy: "merge", a subscriber whose existing
customAttributes are
{"arr":["1","2"],"letter":"X","val":true,"other":"abc"} and whose PATCH
payload is
{"customAttributesStrategy":"merge","customAttributes":{"arr":["3"],"letter":"Z","number":3}}
ends with {"arr":["3"],"letter":"Z","number":3,"val":true,"other":"abc"}.
Names longer than 255 Unicode characters return 400 with a field-specific
error before any identity, status, tag, or attribute changes. Correct the name
before retrying. For compatibility, excess trailing ASCII spaces remain accepted
and are truncated by the database; names are otherwise never truncated.