Skip to main content
POST
Create Subscriber
Create a new subscriber or handle existing ones based on the duplicateStrategy parameter.

Request Body

string
Subscriber delivery email address. Required when creating a new subscriber unless phone is provided - a contact created with only a phone becomes a phone-only (SMS) contact that email sends automatically skip.
string
Your app/customer/user ID for this subscriber. It is unique within your workspace and is trimmed without lowercasing.
string
First name
string
Last name
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. With no email or externalId, the phone creates or matches a phone-only (SMS) contact.
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. Sending it without phone returns 400 VALIDATION_ERROR.
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. Omitted leaves SMS status unchanged. Consent is never inferred from phone presence. See SMS & MMS for the full consent model.
string
default:"active"
Status: active, unsubscribed, or bounced.
string
default:"default"
Consent mode: default obeys your workspace double opt-in setting for new active subscribers, confirmed creates an active subscriber immediately when you have verified consent, and double_opt_in sends a confirmation email and keeps the contact unsubscribed until they confirm.
Omitting optInMode follows the workspace double opt-in setting. Use confirmed only when your app already verified consent. When confirmation is required, Sequenzy applies requested lists and tags only after the subscriber clicks the confirmation link. default does not send confirmation email to an existing unsubscribed contact.
string[]
Array of tag names to assign
string[]
Array of list IDs to add the subscriber to. If omitted, the subscriber follows your workspace default lists setting. If set to an empty array [], the subscriber will not be added to any lists.
object
Custom key-value attributes
boolean
default:"true"
Whether to enroll the subscriber in matching sequences. Defaults to true, or to false when you supply createdAt.
string
ISO 8601 date the contact originally signed up, for importing history from another platform. See Preserving the original signup date.
string
default:"skip"
How to handle existing subscribers: - skip - Don’t update existing subscribers (default) - merge - Only fill in missing fields, never overwrite existing values - overwrite - Replace all fields (but never reactivate unsubscribed users)

Responses

Preserving the Original Signup Date

By default a new contact’s signup date is the moment you created them. That is right for a real signup and wrong for a migration: if you import 50,000 contacts today, all 50,000 look like they joined today, and an audience like “signed up in the last 30 days” matches your entire list on day one and nobody on day 31. Pass createdAt to keep their real date:
Three things to know:
  • It only ever moves earlier. If the contact already exists with an earlier date, yours is ignored - an earlier date is more history than we had, a later one would erase some. This holds for every duplicateStrategy.
  • Sequences do not run. Supplying createdAt defaults enrollInSequences to false, because you are describing the past, not a signup happening now. Pass enrollInSequences: true to override.
  • Only the signup date moves. The contact’s “last updated” time stays the real one, so recently-changed views still tell the truth.
Any list you add them to is joined at the same date. To import their event history too, see Trigger Event. For a whole file at once, put createdAt on each record in Create Subscriber Import.

Double Opt-In

Learn how confirmation emails, pending subscribers, and signup tags work.

SMS & MMS

Learn how SMS consent, quiet hours, and message credits work.