Subscribers
Subscribers By External ID
Get, update, or delete subscribers by your own external ID
GET
Subscribers By External ID
Use external-ID routes when your app has a stable customer, account, or user ID. Prefer the query form because it supports external IDs that contain slashes.
For
When machine engagement is included, open/click activity events include
GET, email engagement stats and recent activity exclude detected email-security scanners and tracked brand assets by default.
Subscriber notes can also use external IDs with GET or POST /api/v1/subscribers/external/notes?externalId={externalId}.
Request
string
required
Customer-owned external ID. Required for
GET, PATCH, and DELETE /subscribers/external.string
Compatibility path form for external IDs that do not contain slashes.
boolean
default:"false"
Set to
true on GET requests to include detected scanner, preview, and
tracked asset open/click events in emailStats and recent activity.machine, engagementQuality, and classificationReasons fields.
string
New subscriber email when updating.
string
New external ID when updating.
string
Updated first name.
string
Updated last name.
string
Updated phone number in E.164 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. Changing the number without smsConsent resets SMS consent. null
or "" clears the phone, except on a phone-only contact with no email.string
ISO 3166-1 alpha-2 country used to read a national-format
phone, such as
IT or US. Defaults to US. Send it only together with phone.boolean
SMS marketing consent.
true subscribes the contact with consent source
api and must only be sent with verified express written consent. false
unsubscribes the contact from SMS. 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
Updated status:
active or unsubscribed.array
Replacement tag list.
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.Responses
Subscribers By External ID