Omnisend · Schema
Omnisend Contact
Schema for the Omnisend Contact resource exposed by GET/POST/PATCH /contacts and GET/PATCH /contacts/{contactID}.
Email MarketingMarketing AutomationEcommerceSMS MarketingCustomer EngagementSegmentationCampaignsFormsPopupsWeb Push
Properties
| Name | Type | Description |
|---|---|---|
| contactID | string | Unique Omnisend identifier for the contact. |
| identifiers | array | One or more identifiers (email or phone) for the contact, each with channel-specific status and consent. |
| firstName | string | Contact first name. |
| lastName | string | Contact last name. |
| country | string | ISO country name for the contact. |
| countryCode | string | ISO 3166-1 alpha-2 country code. |
| state | string | State or province. |
| city | string | City. |
| address | string | Street address. |
| postalCode | string | |
| gender | string | |
| birthdate | string | |
| tags | array | Free-form tags applied to the contact (max 250 per contact). |
| segments | array | Segment IDs the contact currently belongs to (read-only). |
| customProperties | object | Arbitrary custom contact properties. |
| createdAt | string | |
| updatedAt | string |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api-evangelist.com/schemas/omnisend/omnisend-contact-schema.json",
"title": "Omnisend Contact",
"description": "Schema for the Omnisend Contact resource exposed by GET/POST/PATCH /contacts and GET/PATCH /contacts/{contactID}.",
"type": "object",
"required": ["identifiers"],
"properties": {
"contactID": {
"type": "string",
"description": "Unique Omnisend identifier for the contact."
},
"identifiers": {
"type": "array",
"description": "One or more identifiers (email or phone) for the contact, each with channel-specific status and consent.",
"minItems": 1,
"items": { "$ref": "#/$defs/Identifier" }
},
"firstName": {
"type": "string",
"description": "Contact first name."
},
"lastName": {
"type": "string",
"description": "Contact last name."
},
"country": {
"type": "string",
"description": "ISO country name for the contact."
},
"countryCode": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code.",
"pattern": "^[A-Z]{2}$"
},
"state": {
"type": "string",
"description": "State or province."
},
"city": {
"type": "string",
"description": "City."
},
"address": {
"type": "string",
"description": "Street address."
},
"postalCode": {
"type": "string"
},
"gender": {
"type": "string",
"enum": ["f", "m"]
},
"birthdate": {
"type": "string",
"format": "date"
},
"tags": {
"type": "array",
"description": "Free-form tags applied to the contact (max 250 per contact).",
"items": { "type": "string" }
},
"segments": {
"type": "array",
"description": "Segment IDs the contact currently belongs to (read-only).",
"items": { "type": "string" }
},
"customProperties": {
"type": "object",
"description": "Arbitrary custom contact properties.",
"additionalProperties": true
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
},
"$defs": {
"Identifier": {
"type": "object",
"required": ["type", "id", "channels"],
"properties": {
"type": {
"type": "string",
"enum": ["email", "phone"],
"description": "Channel type for this identifier."
},
"id": {
"type": "string",
"description": "The address itself — an email for type=email, an E.164 phone number for type=phone."
},
"channels": {
"type": "object",
"description": "Per-channel subscription state.",
"properties": {
"email": { "$ref": "#/$defs/ChannelState" },
"sms": { "$ref": "#/$defs/ChannelState" }
},
"additionalProperties": false
}
}
},
"ChannelState": {
"type": "object",
"required": ["status"],
"properties": {
"status": {
"type": "string",
"enum": ["subscribed", "unsubscribed", "nonSubscribed"],
"description": "Current subscription status for this channel."
},
"statusDate": {
"type": "string",
"format": "date-time",
"description": "Timestamp the status last changed."
}
}
}
}
}