Listrak · Schema
Listrak Email API Schemas
Email MarketingSMS MarketingMarketing AutomationCross-ChannelRetailPush NotificationsData ImportPrivacy
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Listrak Email API Schemas",
"definitions": {
"Campaign": {
"description": "A Campaign resource.",
"required": [
"campaignName"
],
"type": "object",
"properties": {
"campaignId": {
"format": "int32",
"description": "Identifier used to locate the campaign.",
"type": "integer",
"readOnly": true
},
"campaignName": {
"description": "Name of the campaign.",
"type": "string"
}
}
},
"ResourceCreated": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"resourceId": {
"description": "An identifier used to locate a resource.",
"type": "string"
}
}
},
"Error": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"error": {
"description": "Error code indicating what error has occured.",
"type": "string"
},
"message": {
"description": "Message describing the status and the error that occurred.",
"type": "string"
}
}
},
"Collection[Campaign]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"description": "Collection of return data from the given call.",
"type": "array",
"items": {
"$ref": "#/definitions/Campaign"
}
}
}
},
"Resource[Campaign]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/Campaign",
"description": "Return data."
}
}
},
"ResourceUpdated": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"resourceId": {
"description": "An identifier used to locate the updated resource.",
"type": "string"
}
}
},
"ResourceDeleted": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
}
}
},
"Contact": {
"description": "A Contact resource.",
"required": [
"emailAddress",
"segmentationFieldValues"
],
"type": "object",
"properties": {
"emailAddress": {
"description": "Email address of the contact.",
"type": "string"
},
"emailKey": {
"description": "Listrak email key of the contact.",
"type": "string",
"readOnly": true
},
"universalEmailKey": {
"description": "SHA256 hashed email address.",
"type": "string",
"readOnly": true
},
"subscriptionState": {
"description": "Subscription state of the contact. Allowed values are `Subscribed` and `Unsubscribed`.",
"type": "string"
},
"subscribeDate": {
"format": "date-time",
"description": "Subscribe date of the contact.",
"type": "string",
"readOnly": true
},
"resubscribeDate": {
"format": "date-time",
"description": "ReSubscribe date of the contact.",
"type": "string",
"readOnly": true
},
"subscribeMethod": {
"description": "Subscribe method of the contact.",
"type": "string",
"readOnly": true
},
"unsubscribeDate": {
"format": "date-time",
"description": "Unsubscribe date of the contact.",
"type": "string",
"readOnly": true
},
"unsubscribeMethod": {
"description": "Unsubscribe method of the contact.",
"type": "string",
"readOnly": true
},
"externalContactID": {
"description": "External contact ID provided by the client",
"type": "string"
},
"segmentationFieldValues": {
"description": "Profile field values associated with the contact.",
"type": "array",
"items": {
"$ref": "#/definitions/SegmentationFieldValue"
}
}
}
},
"SegmentationFieldValue": {
"description": "A Profile Field Value resource.",
"required": [
"segmentationFieldId",
"value"
],
"type": "object",
"properties": {
"segmentationFieldGroupId": {
"format": "int32",
"description": "Identifier of the profile field group.",
"type": "integer",
"readOnly": true
},
"segmentationFieldId": {
"format": "int32",
"description": "Identifier of the profile field.",
"type": "integer"
},
"value": {
"description": "Value of the profile field.",
"type": "string"
}
}
},
"CollectionPaged[Contact]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"nextPageCursor": {
"description": "URI of the next page of data.",
"type": "string"
},
"data": {
"description": "Collection of data that exists on this paged view.",
"type": "array",
"items": {
"$ref": "#/definitions/Contact"
}
}
}
},
"Resource[Contact]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/Contact",
"description": "Return data."
}
}
},
"ContactSegmentationFieldValues": {
"description": "A Contact with profile field values.",
"required": [
"emailAddress",
"segmentationFieldValues"
],
"type": "object",
"properties": {
"emailAddress": {
"description": "Email address of the contact.",
"type": "string"
},
"segmentationFieldValues": {
"description": "Profile field values associated with the contact.",
"type": "array",
"items": {
"$ref": "#/definitions/ContactSegmentationFieldValue"
}
}
}
},
"ContactSegmentationFieldValue": {
"description": "A contact's profile field value.",
"required": [
"segmentationFieldId",
"value"
],
"type": "object",
"properties": {
"segmentationFieldId": {
"format": "int32",
"description": "Identifier of the profile field.",
"type": "integer"
},
"value": {
"description": "Value of the profile field.",
"type": "string"
}
}
},
"ContentCreate": {
"description": "Request model for creating content.",
"required": [
"contentName"
],
"type": "object",
"properties": {
"contentFolderId": {
"format": "int32",
"description": "Identifier of the content folder to place the content in.",
"type": "integer"
},
"contentName": {
"description": "Name given to the content block.",
"type": "string"
},
"textContent": {
"description": "Plain text content of the content block.",
"type": "string"
},
"htmlContent": {
"description": "HTML content of the content block.",
"type": "string"
},
"contentType": {
"description": "Type of the content block.",
"enum": [
"DynamicContent",
"SavedContent"
],
"type": "string"
}
}
},
"Collection[Content]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"description": "Collection of return data from the given call.",
"type": "array",
"items": {
"$ref": "#/definitions/Content"
}
}
}
},
"Content": {
"description": "A content library resource.",
"type": "object",
"properties": {
"contentId": {
"format": "int32",
"description": "Identifier used to locate the content.",
"type": "integer"
},
"contentFolderId": {
"format": "int32",
"description": "Identifier of the content folder.",
"type": "integer"
},
"contentName": {
"description": "Name given to the content block.",
"type": "string"
},
"textContent": {
"description": "Plain text content of the content block.",
"type": "string"
},
"htmlContent": {
"description": "HTML content of the content block.",
"type": "string"
},
"contentType": {
"description": "Type of the content block.",
"enum": [
"DynamicContent",
"SavedContent"
],
"type": "string"
},
"contentReadOnly": {
"description": "Indicates whether the content is read-only due to use in a live dynamic content block.",
"type": "boolean"
},
"lastModifiedDate": {
"format": "date-time",
"description": "Date the content was last modified.",
"type": "string"
}
}
},
"Resource[Content]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/Content",
"description": "Return data."
}
}
},
"ContentUpdate": {
"description": "Request model for updating content.",
"type": "object",
"properties": {
"contentFolderId": {
"format": "int32",
"description": "Identifier of the content folder to place the content in.",
"type": "integer"
},
"contentName": {
"description": "Name given to the content block.",
"type": "string"
},
"textContent": {
"description": "Plain text content of the content block.",
"type": "string"
},
"htmlContent": {
"description": "HTML content of the content block.",
"type": "string"
}
}
},
"Collection[ContentFolder]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"description": "Collection of return data from the given call.",
"type": "array",
"items": {
"$ref": "#/definitions/ContentFolder"
}
}
}
},
"ContentFolder": {
"description": "A content library folder resource.",
"type": "object",
"properties": {
"contentFolderId": {
"format": "int32",
"description": "Identifier used to locate the content folder.",
"type": "integer"
},
"listId": {
"format": "int32",
"description": "Identifier of the list this folder belongs to. Null indicates a company-level folder.",
"type": "integer"
},
"parentFolderId": {
"format": "int32",
"description": "Identifier of the parent folder. Null indicates the root folder.",
"type": "integer"
},
"folderName": {
"description": "Name of the content folder.",
"type": "string"
}
}
},
"Collection[Conversation]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"description": "Collection of return data from the given call.",
"type": "array",
"items": {
"$ref": "#/definitions/Conversation"
}
}
}
},
"Conversation": {
"description": "A Conversation resource.",
"type": "object",
"properties": {
"conversationId": {
"format": "int32",
"description": "Identifier used to locate the conversation.",
"type": "integer"
},
"conversationName": {
"description": "Name of the conversation.",
"type": "string"
},
"campaignId": {
"format": "int32",
"description": "Identifier of the campaign associated with the conversation.",
"type": "integer"
},
"expirationDate": {
"format": "date-time",
"description": "Expiration date of the conversation.",
"type": "string"
},
"status": {
"description": "Current status of the conversation.",
"type": "string"
}
}
},
"Resource[Conversation]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/Conversation",
"description": "Return data."
}
}
},
"CollectionPaged[Message]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"nextPageCursor": {
"description": "URI of the next page of data.",
"type": "string"
},
"data": {
"description": "Collection of data that exists on this paged view.",
"type": "array",
"items": {
"$ref": "#/definitions/Message"
}
}
}
},
"Message": {
"description": "A Message resource.",
"required": [
"externalCampaignId",
"subject"
],
"type": "object",
"properties": {
"messageId": {
"format": "int32",
"description": "Identifier used to locate the message.",
"type": "integer",
"readOnly": true
},
"sendDate": {
"format": "date-time",
"description": "Send date of the message.",
"type": "string",
"readOnly": true
},
"messageStatus": {
"description": "Status displaying whether the message is sent or scheduled.",
"type": "string",
"readOnly": true
},
"campaignId": {
"format": "int32",
"description": "Identifier of the campaign associated with the message.",
"type": "integer"
},
"externalCampaignId": {
"description": "Customer-provided identifier of the campaign associated with the message.",
"type": "string"
},
"subject": {
"description": "Subject of the message.",
"type": "string"
}
}
},
"Resource[MessageExtended]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/MessageExtended",
"description": "Return data."
}
}
},
"MessageExtended": {
"description": "A Message resource.",
"required": [
"externalCampaignId",
"fromEmail",
"fromName",
"subject"
],
"type": "object",
"properties": {
"messageId": {
"format": "int32",
"description": "Identifier used to locate the message.",
"type": "integer",
"readOnly": true
},
"sendDate": {
"format": "date-time",
"description": "Send date of the message.",
"type": "string",
"readOnly": true
},
"messageStatus": {
"description": "Status displaying whether the message is sent or scheduled.",
"type": "string",
"readOnly": true
},
"enableUniversalEmailKeySetting": {
"description": "Whether to include UniversalEmailKey in URL query string.",
"type": "boolean"
},
"campaignId": {
"format": "int32",
"description": "Identifier of the campaign associated with the message.",
"type": "integer"
},
"bodyHtml": {
"description": "HTML body that will be sent in the message.",
"type": "string"
},
"bodyText": {
"description": "Text body that will be sent in the message.",
"type": "string"
},
"codePage": {
"format": "int32",
"description": "Type of CodePage used in the message.",
"type": "integer"
},
"enablePassalong": {
"description": "Whether passalong is enabled.",
"type": "boolean"
},
"enableTracking": {
"description": "Whether tracking is enabled.",
"type": "boolean"
},
"externalCampaignId": {
"description": "Customer-provided identifier of the campaign associated with the message.",
"type": "string"
},
"fromEmail": {
"description": "The _from email address_ that will be used for the message.",
"type": "string"
},
"fromName": {
"description": "The _from name_ that will be used for the message.",
"type": "string"
},
"googleAnalyticsCampaignName": {
"description": "The Google Analytics campaign name to be used for message tracking.",
"type": "string"
},
"googleAnalyticsCampaignContent": {
"description": "The Google Analytics campaign content to be used for message tracking.",
"type": "string"
},
"replyEmail": {
"description": "The _reply email address_ that will be used for the message.",
"type": "string"
},
"savedAudienceId": {
"format": "int32",
"description": "Identifier of the SavedAudience to use for recipient filtering.",
"type": "integer"
},
"subject": {
"description": "Subject of the message.",
"type": "string"
},
"toName": {
"description": "The _to name_ that will be used for the message.",
"type": "string"
}
}
},
"CollectionPaged[MessageActivity]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"nextPageCursor": {
"description": "URI of the next page of data.",
"type": "string"
},
"data": {
"description": "Collection of data that exists on this paged view.",
"type": "array",
"items": {
"$ref": "#/definitions/MessageActivity"
}
}
}
},
"MessageActivity": {
"description": "A Message Activity resource.",
"type": "object",
"properties": {
"abuse": {
"description": "Whether the message was marked as abuse by the contact.",
"type": "boolean"
},
"activityDate": {
"format": "date-time",
"description": "Date of first activity by the contact.",
"type": "string"
},
"bounce": {
"description": "Whether the message bounced for the contact.",
"type": "boolean"
},
"bounceReason": {
"description": "Reason why the message bounced.",
"type": "string"
},
"click": {
"description": "Whether the message was clicked by the contact.",
"type": "boolean"
},
"clickCount": {
"format": "int32",
"description": "Number of clicks made by the contact.",
"type": "integer"
},
"emailAddress": {
"description": "Email address of the contact.",
"type": "string"
},
"open": {
"description": "Whether the message was opened by the contact.",
"type": "boolean"
},
"orderTotal": {
"format": "double",
"description": "Order total associated with the message for the contact.",
"type": "number"
},
"read": {
"description": "Whether the message was read by the contact.",
"type": "boolean"
},
"sendDate": {
"format": "date-time",
"description": "Send date of the message.",
"type": "string"
},
"unsubscribe": {
"description": "Whether the message caused an unsubscribe by the contact.",
"type": "boolean"
},
"visitDate": {
"format": "date-time",
"description": "DEPRECATED as of June 2020",
"type": "string"
},
"externalContactID": {
"description": "The external contact ID provided by a 3rd party",
"type": "string"
}
}
},
"Collection[MessageLink]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"description": "Collection of return data from the given call.",
"type": "array",
"items": {
"$ref": "#/definitions/MessageLink"
}
}
}
},
"MessageLink": {
"description": "A Message Link resource.",
"type": "object",
"properties": {
"linkId": {
"format": "int32",
"description": "Identifier used to locate the Link.",
"type": "integer"
},
"linkDescription": {
"description": "Description of the Link.",
"type": "string"
},
"linkUrl": {
"description": "URL of the Link.",
"type": "string"
},
"clickCount": {
"format": "int32",
"description": "The number of clicks for the Link.",
"type": "integer"
}
}
},
"CollectionPaged[MessageLink]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"nextPageCursor": {
"description": "URI of the next page of data.",
"type": "string"
},
"data": {
"description": "Collection of data that exists on this paged view.",
"type": "array",
"items": {
"$ref": "#/definitions/MessageLink"
}
}
}
},
"Resource[MessageLink]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/MessageLink",
"description": "Return data."
}
}
},
"Resource[MessageLinkClicker]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/MessageLinkClicker",
"description": "Return data."
}
}
},
"MessageLinkClicker": {
"description": "A Message Link Clicker resource.",
"type": "object",
"properties": {
"emailAddress": {
"description": "Email address of the contact.",
"type": "string"
},
"clickDate": {
"format": "date-time",
"description": "Date on which the click occurred.",
"type": "string"
}
}
},
"CollectionPaged[MessageLinkClicker]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"nextPageCursor": {
"description": "URI of the next page of data.",
"type": "string"
},
"data": {
"description": "Collection of data that exists on this paged view.",
"type": "array",
"items": {
"$ref": "#/definitions/MessageLinkClicker"
}
}
}
},
"Resource[MessageSummary]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/MessageSummary",
"description": "Return data."
}
}
},
"MessageSummary": {
"description": "A Message Summary resource.",
"type": "object",
"properties": {
"averageOrderValue": {
"format": "double",
"description": "Average order value associated with the message.",
"type": "number"
},
"bounceCount": {
"format": "int32",
"description": "The number of bounces for the message.",
"type": "integer"
},
"clickCount": {
"format": "int32",
"description": "The number of clicks for the message.",
"type": "integer"
},
"conversionCount": {
"format": "int32",
"description": "The number of conversions for the message.",
"type": "integer"
},
"openCount": {
"format": "int32",
"description": "The number of opens for the message.",
"type": "integer"
},
"passAlongCount": {
"format": "int32",
"description": "The number of passalongs for the message.",
"type": "integer"
},
"readCount": {
"format": "int32",
"description": "The number of reads for the message.",
"type": "integer"
},
"revenue": {
"format": "double",
"description": "Total revenue associated with the message.",
"type": "number"
},
"sentCount": {
"format": "int32",
"description": "The number of times the message was sent.",
"type": "integer"
},
"unsubscribeCount": {
"format": "int32",
"description": "The number of unsubscribes for the message.",
"type": "integer"
},
"visitCount": {
"format": "int32",
"description": "The number of site visits as a result of the message.",
"type": "integer"
}
}
},
"Resource[ConversationSummary]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/ConversationSummary",
"description": "Return data."
}
}
},
"ConversationSummary": {
"description": "A Conversation Summary resource",
"type": "object",
"properties": {
"averageOrderValue": {
"format": "double",
"description": "Average order value associated with the conversation.",
"type": "number"
},
"bounceCount": {
"format": "int32",
"description": "The number of bounces for the conversation.",
"type": "integer"
},
"clickCount": {
"format": "int32",
"description": "The number of clicks for the conversation.",
"type": "integer"
},
"conversionCount": {
"format": "int32",
"description": "The number of conversions for the conversation.",
"type": "integer"
},
"deliveredCount": {
"format": "int32",
"description": "The number of messages delivered for the conversation.",
"type": "integer"
},
"openCount": {
"format": "int32",
"description": "The number of opens for the conversation.",
"type": "integer"
},
"readCount": {
"format": "int32",
"description": "The number of reads for the conversation.",
"type": "integer"
},
"revenue": {
"format": "double",
"description": "Total revenue associated with the conversation.",
"type": "number"
},
"sentCount": {
"format": "int32",
"description": "The number of messages sent during the conversation.",
"type": "integer"
},
"unsubscribeCount": {
"format": "int32",
"description": "The number of unsubscribes for the conversation.",
"type": "integer"
},
"visitCount": {
"format": "int32",
"description": "The number of site visits as a result of the conversation.",
"type": "integer"
}
}
},
"Event": {
"description": "An Event resource.",
"required": [
"eventName",
"status"
],
"type": "object",
"properties": {
"eventId": {
"format": "int32",
"description": "Identifier used to locate the event.",
"type": "integer",
"readOnly": true
},
"eventName": {
"description": "Name given to the event.",
"type": "string"
},
"eventGroupId": {
"format": "int32",
"description": "Identifier of the event group associated with the event.",
"type": "integer"
},
"status": {
"description": "Status of the event. Allowed values are `Active` and `Blocked`.",
"type": "string"
}
}
},
"Collection[Event]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"description": "Collection of return data from the given call.",
"type": "array",
"items": {
"$ref": "#/definitions/Event"
}
}
}
},
"Resource[Event]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"$ref": "#/definitions/Event",
"description": "Return data."
}
}
},
"EventGroup": {
"description": "An Event Group resource.",
"required": [
"eventGroupName"
],
"type": "object",
"properties": {
"eventGroupId": {
"format": "int32",
"description": "Identifier used to locate the event group.",
"type": "integer",
"readOnly": true
},
"eventGroupName": {
"description": "Name of the event group.",
"type": "string"
}
}
},
"Collection[EventGroup]": {
"type": "object",
"properties": {
"status": {
"format": "int32",
"description": "HTTP status code.",
"type": "integer"
},
"data": {
"description": "Collection of return da
# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/listrak/refs/heads/main/json-schema/listrak-email-schemas.json