Omnisend · Schema
Omnisend Contact
Schema for the Omnisend Contact resource exposed by GET/POST/PATCH /contacts and GET/PATCH /contacts/{contactID}.
Email MarketingMarketing AutomationE-CommerceSMS MarketingCustomer EngagementSegmentationCampaignsFormsPopupsWeb PushAutomation WorkflowsAnalyticsMCPAgent ReadyTransactional Messaging
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."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/omnisend-contact"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.