Create or update existing contact

Creates a new contact. If a contact with the provided email identifier already exists, it will be updated instead. If a contact with the given email identifier already exists, the existing contact is updated (upsert). Returns 201 Created for new contacts and 200 OK when an existing contact was updated.

Scopes: contacts.write

Body Params

Contact to create or update

string

Street, house number, apartment number.

string

Contact birthdate in YYYY-MM-DD format

string

City

string

Country name. Used to derive ISO country code when countryCode is not provided

string

ISO 3166-1 alpha-2 country code. Takes priority over country when both are provided

string

Contact creation timestamp. If provided, stored as "externalCreated" custom property

customProperties
object

You can add your own custom properties. Read more in https://api-docs.omnisend.com/reference/contacts#custom-properties

string

Contact first name

string
enum

Contact gender. m - male, f - female

Allowed:
identifiers
array of objects

Contact identifiers (email and/or phone)

identifiers
string

Contact last name

string

Postal or zip code

string

State or region

tags
array of strings
length ≤ 100

Labels assigned to the contact. When creating a contact, it is strongly advised to include a source tag, e.g. "source: shopify".

tags
Headers
string
required
Defaults to 2026-03-15

API version that specifies the response format and behaviour

Responses

Language
Credentials
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json