POST /v1/contacts
Body
string
required
The contact’s email address. Unique within the project.
string
Given name.
string
Family name.
boolean
Whether the contact is opted in. Defaults to
true. When false, unsubscribedAt is stamped on create.object
Free-form key/value pairs stored alongside the contact.
Subscription is not suppression. The
subscribed flag is an app-level marketing signal. It does not block delivery — that’s the job of suppressions. A complaint still drops a message even if subscribed is true.Request
Response
Returns201 Created with the contact. If a contact with the same email already exists in this project, the call returns 409 conflict (contact_email_taken).
201 Created
