swagger: '2.0' info: title: Mapp Engage public API version: '1' description: 'Mapp Engage REST API (REST 2.0, incremental version v19). Assembled verbatim from the per-operation OpenAPI fragments Mapp publishes on each endpoint page of https://docs.mapp.com/apidocs/. The base URL is tenant-specific: take your Mapp Engage login host and append /api/rest/v19.' contact: name: Mapp Technical Support url: https://mapp.com/tech-support/ basePath: /api/rest/v19 schemes: - https consumes: - application/json produces: - application/json - application/xml securityDefinitions: basicAuth: type: basic description: HTTP Basic authentication with a Mapp Engage system user of type API (or Hybrid). security: - basicAuth: [] tags: - name: Address Attributes - name: Async - name: Audit Log - name: Automation - name: Blacklist - name: CMS - name: Contact - name: Content - name: Draft Message - name: Ecommerce - name: Group - name: Group Attributes - name: Landing Page - name: Member Attributes - name: Membership - name: Message - name: Meta - name: Mobile Push - name: Prepared Message - name: Process - name: Profile Attributes - name: Related Data - name: Segmentation - name: System - name: System User - name: Usage Statistics - name: User - name: Whiteboard paths: /meta/activateAttributeDefinitions: post: tags: - Meta summary: Activate attribute definitions description: 'Reactivates archived custom attributes that are named in the parameter list. After activation, they can be used in personalization during the message composition process.
Request body example:

["attributename"]
' operationId: activateAttributeDefinitions consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: string responses: '204': description: '' '400': description: '' /group/activate: post: tags: - Group summary: Activate groups description: Activates archived groups.
Request body example:

["1800123820", "1800146953"]
operationId: activate consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: integer format: int64 responses: '200': description: successful operation schema: type: array items: type: object '204': description: 'Example response:

[{
"entityKey": "1800123820",
"code": null,
"message": null }, {
"entityKey": "1800146953",
"code": null,
"message": null
}]' '400': description: Provided list of groupIds is empty /contact/anonymize: get: tags: - Contact summary: Anonymize a contact description: Anonymizes contact PII data based on GDPR regulations. operationId: anonymize consumes: - application/json parameters: - name: contactId in: query description: The user ID of the contact to perform anonymization for. required: true type: integer format: int64 - name: notificationRecipient in: query description: Active system user witch is going to be used for permission checks, and will get system message. required: true type: string responses: '200': description: '' schema: type: boolean '400': description: Parameter contactId and notificationRecipient are mandatory, but are missing or incorrect '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /process/applyAction: post: tags: - Process summary: Apply an action to a process description: Changes the status of an existing process. operationId: applyAction consumes: - application/json parameters: - name: processId in: query description: Process identifier required: true type: integer format: int64 - in: body name: body required: false schema: type: string responses: '200': description: '' schema: type: string enum: - FAILED - FINISHED - PAUSED - PROCESSING '400': description: '' /meta/archiveAttributeDefinitions: post: tags: - Meta summary: Archive attribute definitions description: 'Archives custom attributes. An archived attribute is still stored in the system. The attributes can still be in use for existing messages and sendouts, but they are not available in the GUI message creation process (i.e. personalization builder).
Request body example:

["attributename"]
' operationId: archiveAttributeDefinitions consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: string responses: '204': description: '' '400': description: '' /group/archive: post: tags: - Group summary: Archive groups description: Archive a list of groups and any dependent subgroups. Other dependent objects, such as triggers and scheduled tasks, are not archived.
Request body example:

["1800123820", "1800146953"]
operationId: archive consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: integer format: int64 responses: '200': description: 'Example response:

[{
"entityKey": "80375",
"code": null,
"message": null
}]' schema: type: array items: type: object '400': description: Provided list of groupIds is empty /profileAttributes/archive: post: tags: - Profile Attributes summary: Archive profile attributes description: '' operationId: archive_2 consumes: - application/json produces: - application/json responses: default: description: successful operation /meta/attachTags: post: tags: - Meta summary: Attach tags description: Attach tags operationId: attachTags consumes: - application/json parameters: - name: entityId in: query description: Entity id required: true type: integer format: int64 - name: entityType in: query description: Entity type required: true type: string - in: body name: body required: false schema: type: array items: type: string responses: '204': description: '' '400': description: '' /mobilePush/cancelPushSend: post: tags: - Mobile Push summary: Cancel a push message send description: Cancel message send. operationId: cancelPushSend consumes: - application/json parameters: - name: messageId in: query description: The message ID. required: true type: integer format: int64 responses: '204': description: '' '400': description: One of the parameters is invalid / The message ID or user ID cannot be found. / An unexpected backend error occurred. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /contact/checkUpdateVersion: get: tags: - Contact summary: Check contact update version description: Checks if profile update with specified update version (timestamp) has been saved in Data Store. operationId: checkUpdateVersion consumes: - application/json parameters: - name: contactIdentifier in: query description: The contact identifier. The same that is used in the "Update" method. It is described here ContactIdentifier. required: true type: string - name: updateVersion in: query description: The timestamp to be checked. required: true type: integer format: int64 responses: '200': description: Boolean value schema: type: boolean '400': description: '{
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Bad Request"
}' /group/clone: post: tags: - Group summary: Clone a group description: 'Creates a clone of a group that already exists in the system.
Most of the sendout options and delivery settings are identical for the original and the clone.
Group members are not copied
Request body example:

{
"name" : "Group Name",
"description" : "Description of the group",
"email" : "group@test.com",
"includePreparedMessages" : "true",
"includeTestUsers" : "false"
}
' operationId: clone consumes: - application/json parameters: - name: groupId in: query description: ID of the group to be cloned required: true type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/GroupCloneOptions' responses: '200': description: 'Example response:

{
"id": 80376,
"name": "CloneOfTestGroup0803022-1",
"description": "magna labore dolor eu Lorem",
"email": "cloneoftestgroup0803022-1@docker01.dmclab.muc.domeus.com"
}' schema: $ref: '#/definitions/Group' '400': description: Required parameters are missing or incorrect. Group with groupId cannot be found /contact/create: post: tags: - Contact summary: Create a contact description: 'Creates a new contact using the information provided in the contact object.

Check Contact_ for possible identifiers in the body.
Request body examples:

{
"emailAddress": "test20210203@dropmail.mapp.com",
"attributes":
[
{"name": "FirstName", "value": "John"},
{"name": "LastName", "value": "Smith"},
{"name": "mobileNumber", "value": "33505606709"},
{"name": "user.ISOCountryCode", "value": "FR"}
]
}

{
"emailAddress" : "testuser@dropmail.mapp.com"
}
' operationId: create consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/Contact' responses: '200': description: '' schema: $ref: '#/definitions/Contact' '400': description: Such contact already exists /draftmessage/create: post: tags: - Draft Message summary: Create a draft message description: 'Creates a new message as a draft.
Request body example:

{
"name": "Test Draft Message",
"externalId": null,
"messageCategoryId": null,
"message":
{
"subject": "This is draft test",
"emailBodyText": null,
"emailBodyHtml": "Test",
"smsText": null,
"faxText": null,
"emailHeaders":
[
],
"attachments":
[
],
"attachmentReferences": null,
"encoding": "ISO-8859-1",
"encodingSMS": "ISO-8859-1",
"imageHandlingMode": "none"
}
}


Example body with from and Reply-to headers:


{
"name": "Test Draft Message",
"externalId": null,
"messageCategoryId": null,
"message":
{
"subject": "This is draft test",
"emailBodyText": null,
"emailBodyHtml": "Test",
"smsText": null,
"faxText": null,
"emailHeaders":
[{"name":"from","value":"John"},
{"name":"Reply-to","value":"Bob "}],
"attachments":[],
"attachmentReferences": null,
"encoding": "ISO-8859-1",
"encodingSMS": "ISO-8859-1",
"imageHandlingMode": "none"
}
}

ImageHandlingMode values:
"none" - Image links are unchanged 
"inline" - Image are inlined (Offline HTML)
"host" - Image are Hosted in Mapp Engage (Online HTML)
' operationId: CreateDraftMessage consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/DraftMessage' responses: '200': description: 'Example response when dmarcTrue=true and domain not matching:

{
"errorActor": null,
"errorCode": "INVALID_PARAMETER",
"message": "reply-to email must contain valid email domain",
"parameterName": null,
"propertyName": null,
"value": null
}' schema: $ref: '#/definitions/DraftMessage' '400': description: '' /group/create: post: tags: - Group summary: Create a group description: Create a new group.
For domain, check Mapp Engage > Create > New Group
Returns Object Already Exists Exception operationId: CreateGroup consumes: - application/json parameters: - name: name in: query description: The name of the group. required: true type: string - name: email in: query description: The email address of the group. required: true type: string - name: description in: query description: The description of the group. required: false type: string - name: groupCategoryId in: query description: The group category required: false type: integer format: int64 - name: isoCountryCode in: query description: The ISO country code required: true type: string - name: isoLanguageCode in: query description: The ISO language code required: true type: string - name: isSuperGroup in: query description: Should be a supergroup required: true type: boolean - name: groupTemplateId in: query description: The ID of groupTemplate required: false type: integer format: int64 responses: '200': description: successful operation schema: type: integer format: int64 '204': description: 'Example response:

{
1900328197
}' '400': description: Required parameters are missing or incorrect / Group already exists /groupAttributes/create: post: tags: - Group Attributes summary: Create a group attribute description: '' operationId: create_2 consumes: - application/json produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/GroupAttributeData' responses: '200': description: successful operation schema: $ref: '#/definitions/GroupAttributeData' /memberAttributes/create: post: tags: - Member Attributes summary: Create a member attribute for a group description: '' operationId: create_3 consumes: - application/json produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/MemberAttributeData' responses: '200': description: successful operation schema: $ref: '#/definitions/MemberAttributeData' /membership/create: get: tags: - Membership summary: Create a membership description: Subscribes a contact to a group, creating a new membership. Unlike normal subscription, a notification is not sent. operationId: CreateMembership parameters: - name: userId in: query description: ID of the user. required: true type: integer format: int64 - name: groupId in: query description: ID of the group. required: true type: integer format: int64 responses: '200': description: 'Example response:
{
"userId": 18076325029,
"groupId": 1800116178,
"attributes": []
}' schema: $ref: '#/definitions/Membership' '400': description: userId and groupId are mandatory, but are missing or incorrect. / User with id does not exist. / Group with id does not exist. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /profileAttributes/create: post: tags: - Profile Attributes summary: Create a profile attribute description: '' operationId: create_4 consumes: - application/json produces: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/ProfileAttributeData' responses: '200': description: successful operation schema: $ref: '#/definitions/ScheduledOperationResult' /relatedData/createRecord: post: tags: - Related Data summary: Create a related data record description: 'Adds ONE record to a data set. The data to insert is defined in a JSON block submitted in the request body.
The JSON block must contain the dataset''s name, the key value, and a data array of name and value elements. The name references the column in the related data set, and the value contains the data to be inserted into the corresponding columns.

datasetName (String, required) - Name of the related data set. All related data records reside within a data set identified by a unique name.
key (String, required) - Key defining which record(s) to select from the data set.
data (Attribute, optional) - An optional list of name, value pair.
Request body example:

{
"datasetName": "products",
"key": "testuser@domain.com",
"data": [
{
"name": "productname",
"value": "bicycle"
},
{
"name": "quantity",
"value": "1"
}
]
}
' operationId: createRecord consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/RelatedDataRecord' responses: '200': description: '' '400': description: RelatedDataList with dataSetName=products does not exist. /segmentation/create: post: tags: - Segmentation summary: Create a selection plan description: "Creates a new selection plan. The request body is a wrapper whose json field carries the\ \ raw plan JSON document as a string (escaped). The plan must contain at least name and nodes;\ \ validate it against schema first. Returns the new plan's id.

Example body
{\n \
        \ \"json\": \"{\\\"name\\\":\\\"My plan\\\",\\\"timeZoneId\\\":\\\"Europe/Belgrade\\\",\\\"nodes\\\":[ ... ]}\"\n\
        }
" operationId: create_5 consumes: - application/json produces: - application/json parameters: - in: body name: body description: Wrapper carrying the raw plan JSON document as a string in its 'json' field. required: false schema: $ref: '#/definitions/SegmentationPayload' x-examples: application/json: "{\n \"json\": \"{\\\"name\\\":\\\"My plan\\\",\\\"timeZoneId\\\":\\\"Europe/Belgrade\\\",\\\"\ nodes\\\":[ ... ]}\"\n}" responses: '200': description: The new plan's id, e.g. {"id":"..."}. schema: $ref: '#/definitions/SegmentationReference' '400': description: bad request /systemuser/create: post: tags: - System User summary: Create a system user description: Creates the new system user in the system.
Request body example:

{
"email":"test1@test.mapp",
"firstName":"sf53sd",
"lastName":"zf8hzt",
"language":"en",
"type":"hybrid",
"messagingRole":"project_manager"
}
operationId: createSystemUser consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/SystemUser' - name: createContact in: query description: Flag that determines whether to create a contact required: true type: boolean - name: suppressSystemMessage in: query description: Flag that determines suppressing system message required: true type: boolean responses: '200': description: '' schema: $ref: '#/definitions/SystemUser' '400': description: '' /user/create: post: tags: - User summary: Create a user description: 'Creates a new user. Requires either an email or a mobile number since these fields are used as the unique user identifier in the system.
Request body example:
[
{"name" : "user.lastname", "value" : "Smith"},
{"name" : "DateOfBirth", "value" : "1970-05-05"},
{"name" : "ISOlanguagecode", "value" : "fr"},
{"name": "user.ISOCountryCode", "value": "FR"}
]
' operationId: createUser consumes: - application/json parameters: - name: email in: query description: Email of the user required: true type: string - name: mobileNumber in: query description: Mobile number of the user required: true type: string - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '200': description: '' schema: $ref: '#/definitions/User' '400': description: User with email does already exist. / One of the parameters 'email' or 'mobileNumber' must not be empty. /ecommerce/createWishlistItem: post: tags: - Ecommerce summary: Create a wish list item description: 'Create a wish list item
Request body example:

{
"productSKU": "2022-01-13-2",
"timestamp": "2022-01-14T17:25:43.511Z",
"productPrice": "1",
"size": "1"
}
' operationId: createWishlistItem consumes: - application/json parameters: - name: userEmail in: query description: Email of the user required: true type: string - name: wishlistItem in: query description: Wish list item required: true type: string responses: '200': description: '' '400': description: Required parameters are missing or incorrect. /ecommerce/createAbandonedBrowseItem: post: tags: - Ecommerce summary: Create an abandoned browse item description: 'Create an abandoned browse item
Request body example:

{
"productSKU": "2022-01-13-2",
"timestamp": "2022-01-14T17:25:43.511Z",
"productPrice": "1",
"size": "1"
}
' operationId: createAbandonedBrowseItem consumes: - application/json parameters: - name: userEmail in: query description: Email of the user required: true type: string - name: wishlistItem in: query description: Ecommerce item required: true type: string responses: '200': description: '' '400': description: Required parameters are missing or incorrect. /ecommerce/createAbandonedCartItem: post: tags: - Ecommerce summary: Create an abandoned cart item description: 'Create an abandoned cart item
Request body example:

{
"productSKU": "2022-01-13-2",
"timestamp": "2022-01-14T17:25:43.511Z",
"productPrice": "1",
"size": "1"
}
' operationId: createAbandonedCartItem consumes: - application/json parameters: - name: userEmail in: query description: Email of the user required: true type: string - name: wishlistItem in: query description: Ecommerce item required: true type: string responses: '200': description: '' '400': description: Required parameters are missing or incorrect. /mobilePush/createAndSchedulePushMessage: post: tags: - Mobile Push summary: Create and schedule a push message description: 'Create and schedule push message.
Request body example:

{
"name" : "test name",
"appId" : "1585031493269",
"selectionPlanId" : "768E488C-45C2-4A6F-800B-C569586F1DC5",
"content" : "This is iOS test push ",
"messageTitle" : "Hello",
"description" : "description",
"notificationSound" : "sound1.mp3",
"pushActionType" : "LAUNCH_APP",
"pushActionParams" : "www.test.com",
"buttonCategory" : "apx_read_open",
"buttonActionType" : "OPEN_LANDING_PAGE",
"buttonActionParams" : "https://www.google.com/",
"mediaType" : "IMAGE",
"mediaUrl" : "https://staging11.shortest-route.com/qatest/imgproxy/img/110/5ac68ca5498a5.png",
"scheduledTime" : "2020-07-31T12:44:46.966Z",
"timeZone" : "Europe/Budapest",
"messagePriority" : "normal",
"archiveOnCompleted" : "true"
}


Another example:

{
"name" : "test Silvia3",
"appId" : "207084",
"selectionPlanId" : "D5398D44-73C8-4B1E-8E99-711BC9CAEBB8",
"content": "yo yo yo 😎",
"messageTitle": "hello 😁",
"notificationSound": "",
"pushActionType": "LAUNCH_APP",
"buttonLanguageCode": "en",
"scheduledTime" : "2024-08-31T12:44:46.966Z",
"timeZone" : "Europe/Rome",
"messagePriority" : "high",
"archiveOnCompleted" : "false"
}


Required parameters: name, appId, content, messageTitle

pushActionType enum values [LAUNCH_APP, OPEN_LANDING_PAGE, OPEN_DEEP_LINK, OPEN_STORE]
buttonCategory enum values [apx_yes_no_open, apx_acc_dec_open, apx_buy_open, apx_read_open]
buttonActionType enum values [LAUNCH_APP, OPEN_LANDING_PAGE, OPEN_DEEP_LINK, OPEN_STORE]
mediaType enum values [IMAGE, VIDEO]

IMPORTANT: messagePriority (optional) - Please note that this feature is not activated by default. Please contact your Customer Success Manager to request activation.
' operationId: createAndSchedulePushMessage consumes: - application/json parameters: - in: body name: body description: An object that contains a definition of the push message to be created. required: true schema: $ref: '#/definitions/PushMessage' responses: '200': description: 'Example response:
{
"status" : "success",
"messageId" : 1,
}' schema: $ref: '#/definitions/PushMessageResponse' '400': description: '' /meta/createAttributeDefinitions: post: tags: - Meta summary: Create attribute definitions description: 'Creates a new data field (custom user attribute) where information about users can be stored. With the standard setup, you are permitted to create a limited number of custom attributes with different data types.
Each custom user attribute has a unique name. If an attribute is no longer needed, it may be archived. Please contact your customer support representative if you need to delete an attribute.
Request body example:

[{
"name": "attributename",
"type": "STRING",
"enumerationValues":
[
"value1",
"value2",
"value3"
],
"active": "true"
}]
' operationId: createAttributeDefinitions consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/AttributeDefinition' responses: '204': description: '' '400': description: '' /blacklist/createGroupEntries: post: tags: - Blacklist summary: Create group blacklist entries description: 'Adds new entries (email, emailDomain or mobileNumber) to the group blacklist.
Request body example:

[{
"type": "EMAIL",
"pattern": "test@test.com"
}]
' operationId: createGroupEntries consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/BlacklistEntry' - name: groupId in: query description: ID of the group required: true type: integer format: int64 responses: '200': description: 'Example response:

[{
"success": true,
"id": "test@test.com",
"errorActor": null,
"errorCode": null,
"errorMessage": null
}]' schema: $ref: '#/definitions/CreateResult' '400': description: '' /blacklist/createGroupEntriesHashed: post: tags: - Blacklist summary: Create hashed group blacklist entries description: 'Adds new hashed email entries to the group blacklist. Entries can be hashed using md5hashgenerator.
Request body example:

[
{
"type": "EMAIL",
"pattern":"6a4b6cb2045fd55f706eaebd6ab5d4f7"
},
{
"type": "EMAIL",
"pattern":"0dbfb46341bc3d195db23e4015b20847"
}
]
' operationId: createGroupEntriesHashed consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/BlacklistEntry' - name: groupId in: query description: The group ID. required: true type: integer format: int64 - name: hashed in: query description: Hashing algorithm used to hash given entries. Either 'clear-text' or 'md5' required: true type: string responses: '200': description: '' schema: $ref: '#/definitions/CreateResult' '400': description: '' /blacklist/createSystemEntriesHashed: post: tags: - Blacklist summary: Create hashed system blacklist entries description: 'Adds new entries (email, email domain, mobile number, or mobile app alias) to the system blacklist. Entries can be hashed using md5hashgenerator.
Request body example:

[
{
"type": "EMAIL",
"pattern":"6a4b6cb2045fd55f706eaebd6ab5d4f7"
},
{
"type": "EMAIL",
"pattern":"0dbfb46341bc3d195db23e4015b20847"
}
]
' operationId: createSystemEntriesHashed consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/BlacklistEntry' - name: hashed in: query description: the hashing algorithm used to hash given entries. Either 'clear-text' or 'md5' required: true type: string responses: '200': description: '' schema: $ref: '#/definitions/CreateResult' '400': description: '' /meta/createLinkCategories: post: tags: - Meta summary: Create link categories description: 'Creates new link categories. Link categories are automatically assigned to a link via a regex pattern.
The link categories group together different links for statistical purposes and can be used to trigger automated processes when a link of a certain category is clicked.
The name and pattern are mandatory inputs for the category. The ID is automatically assigned by the system
Request body example:

[{
"id": "",
"name": "TestApi",
"description" : "Rest Api Call",
"pattern": "TestAp[i]"
}]
' operationId: createLinkCategories consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/LinkCategory' responses: '204': description: '' '400': description: '' /blacklist/createSystemEntries: post: tags: - Blacklist summary: Create system blacklist entries description: 'Adds new entries (email, email domain or mobile number) to the system blacklist.
Request body examples:

[{
"type": "EMAIL",
"pattern": "test@test.com"
}]

[{
"type": "PHONE_NUMBER",
"pattern": "336789012345"
}]
' operationId: createSystemEntries consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/BlacklistEntry' responses: '200': description: 'Example response:

[{
"success": true,
"id": "test@test.com",
"errorActor": null,
"errorCode": null,
"errorMessage": null
}]' schema: $ref: '#/definitions/CreateResult' '400': description: '' /whiteboard/save: post: tags: - Whiteboard summary: Creates or updates a whiteboard. Schema-validates the body against the whiteboard JSON Schema before delegating to the downstream save flow. description: '' operationId: save consumes: - application/json produces: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/AgentAutomationPayload' responses: '200': description: The outcome of the save operation (UpsertResult). schema: $ref: '#/definitions/UpsertResult' '400': description: The supplied whiteboard JSON failed schema validation. /contact/delete: post: tags: - Contact summary: Delete a contact description: Deletes the contact identified by the specified identifier.
Request body example:

{
"type":"EMAIL",
"value":"test@test.com"
} operationId: delete consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/ContactIdentifier' responses: '200': description: '' '400': description: '' /content/delete: delete: tags: - Content summary: Delete a content element description: Deletes a content element in the Content Store. operationId: DeleteContent consumes: - application/json parameters: - name: contentId in: query description: Content id required: true type: string responses: '204': description: Response {
1
} '400': description: '' /draftmessage/delete: delete: tags: - Draft Message summary: Delete a draft message description: Deletes a draft message identified by the specified draft message ID. operationId: DeleteDraftMessage consumes: - application/json parameters: - name: draftMessageId in: query description: ID of draft message required: true type: integer format: int64 responses: '204': description: '' '404': description: '' /landingpage/delete: delete: tags: - Landing Page summary: Delete a landing page description: Deletes the landing page with the specified landing page ID. It works only if the landing page is inactive. operationId: deleteLandingPage consumes: - application/json parameters: - name: landingpageId in: query description: ID of the landing page required: true type: integer format: int64 responses: '204': description: '' '400': description: '' /meta/deleteLinkCategory: post: tags: - Meta summary: Delete a link category description: Delete link category operationId: deleteLinkCategory consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: string responses: '204': description: '' '400': description: '' /memberAttributes/delete: delete: tags: - Member Attributes summary: Delete a member attribute from a group description: '' operationId: delete_2 produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - name: attributeId in: query required: false type: integer format: int64 responses: default: description: successful operation /membership/delete: delete: tags: - Membership summary: Delete a membership description: Deletes an existing membership (meaning the user is unsubscribed from the group). This call differs from the unsubscribe method in that the user is not notified about the unsubscription operationId: DeleteMembership parameters: - name: userId in: query description: ID of the user. required: true type: integer format: int64 - name: groupId in: query description: ID of the group. required: true type: integer format: int64 responses: '204': description: 'Example response:
{
"userId": 18076325029,
"groupId": 1800116178,
"attributes": []
}' '400': description: userId and groupId are mandatory, but are missing or incorrect. / User with id does not exist. / Group with id does not exist. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /mobilePush/deletePushMessage: delete: tags: - Mobile Push summary: Delete a prepared push message description: Delete prepared push message. operationId: deletePushMessage consumes: - application/json parameters: - name: messageId in: query description: The campaign ID of the prepared message to be deleted. required: true type: integer format: int64 responses: '204': description: '' '400': description: One of the parameters is invalid / The message ID or user ID cannot be found. / An unexpected backend error occurred. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /segmentation/delete: delete: tags: - Segmentation summary: Delete a selection plan description: Permanently deletes a selection plan by ID. Irreversible. Selection Builder responds 204 No Content on success. operationId: delete_3 consumes: - application/json produces: - application/json parameters: - name: id in: query description: ID of the plan to delete (GUID). required: true type: string responses: '200': description: Plan deleted. '400': description: bad request /systemuser/delete: delete: tags: - System User summary: Delete a system user description: Deletes the system user identified by the specified system user ID, external ID, or email address. operationId: deleteSystemUser consumes: - application/json parameters: - name: systemUserId in: query description: ID of the user required: true type: integer format: int64 - name: email in: query description: Email of the user required: true type: string - name: externalId in: query description: External ID of the user required: true type: string responses: '204': description: '' '400': description: '' /ecommerce/removeTransaction: delete: tags: - Ecommerce summary: Delete a transaction description: Delete transaction operationId: removeTransaction consumes: - application/json parameters: - name: userEmail in: query description: Email of the user for which the transaction should be removed required: true type: string - name: orderId in: query description: OrderId of the transaction to be removedOrderId of the transaction to be removed required: true type: string responses: '200': description: '' '400': description: Required parameters are missing or incorrect. /user/deleteByEmail: delete: tags: - User summary: Delete a user by email description: Deletes the user identified by the email address. operationId: deleteByEmail consumes: - application/json parameters: - name: email in: query description: Email of the user required: false type: string responses: '204': description: '' '400': description: Parameter 'email' is mandatory, but missing or incorrect. /user/deleteByMobileNumber: delete: tags: - User summary: Delete a user by mobile number description: Deletes the user identified by the mobile number. operationId: deleteByMobileNumber consumes: - application/json parameters: - name: mobileNumber in: query description: Mobile number of the user required: false type: string responses: '204': description: '' '400': description: Parameter 'mobileNumber' is mandatory, but missing or incorrect. /user/delete: delete: tags: - User summary: Delete a user description: Deletes the user identified by the specified ID operationId: deleteUser consumes: - application/json parameters: - name: userId in: query description: User id required: false type: integer format: int64 responses: '204': description: '' '400': description: Parameter 'userID' is mandatory, but missing or incorrect. '404': description: Not Found /ecommerce/removeWishlistItem: delete: tags: - Ecommerce summary: Delete a wish list item description: Delete wishlist item operationId: removeWishlistItem consumes: - application/json parameters: - name: userEmail in: query description: Email of the user for which the wishlist item should be removed required: true type: string - name: productSKU in: query description: ProductSKU of the wishlist item to be removed required: true type: string responses: '200': description: '' '400': description: Required parameters are missing or incorrect. /ecommerce/removeAbandonedBrowseItem: delete: tags: - Ecommerce summary: Delete an abandoned browse item description: Delete an abandoned browse item operationId: removeAbandonedBrowseItem consumes: - application/json parameters: - name: userEmail in: query description: Email of the user for which the abandonedBrowse item should be removed required: true type: string - name: productSKU in: query description: ProductSKU of the abandonedBrowse item to be removed required: true type: string responses: '200': description: '' '400': description: Required parameters are missing or incorrect. /ecommerce/removeAbandonedCartItem: delete: tags: - Ecommerce summary: Delete an abandoned cart item description: Delete an abandoned cart item operationId: removeAbandonedCartItem consumes: - application/json parameters: - name: userEmail in: query description: Email of the user for which the abandonedCart item should be removed required: true type: string - name: productSKU in: query description: ProductSKU of the abandonedCart item to be removed required: true type: string responses: '200': description: '' '400': description: Required parameters are missing or incorrect. /groupAttributes/delete: post: tags: - Group Attributes summary: Delete group attributes by name (bulk) description: '' operationId: delete_4 consumes: - application/json produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 responses: default: description: successful operation /blacklist/deleteGroupEntries: post: tags: - Blacklist summary: Delete group blacklist entries description: 'Deletes entries (email, email domain or mobile number) from the group blacklist.
Request body example:

[{
"type": "EMAIL",
"pattern": "test@test.com"
}]
' operationId: deleteGroupEntries consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/BlacklistEntry' - name: groupId in: query description: ID of the group. required: true type: integer format: int64 responses: '200': description: 'Example response:

[{
"success": true,
"id": "test@test.com",
"errorActor": null,
"errorCode": null,
"errorMessage": null
}]' schema: $ref: '#/definitions/CreateResult' '400': description: '' /landingpage/deleteMany: post: tags: - Landing Page summary: Delete multiple landing pages description: Deletes the landing pages with the specified landing page IDs. It works only if landing pages are inactive.
Request body example:

["626","627"]
operationId: deleteMany consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: integer format: int64 responses: '204': description: 'Example response:

{
1
}' '400': description: '' /relatedData/deleteRecords: post: tags: - Related Data summary: Delete related data records description: 'Delete a record in a related data set.
Request body example:

{"datasetName": "products",
"key": "testuser@domain.com",
"filter":
[{
"name":"bicycle",
"value":"14"
}]
}
' operationId: deleteRecords consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/RelatedDataFilter' responses: '200': description: '' schema: type: integer format: int64 '400': description: '' /blacklist/deleteSystemEntries: post: tags: - Blacklist summary: Delete system blacklist entries description: 'Deletes entries (email, email domain or mobile number ) from the system blacklist.
Request body example:

[{
"type": "EMAIL",
"pattern": "test@test.com"
}]
' operationId: deleteSystemEntries consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/BlacklistEntry' responses: '200': description: 'Example response:

[{
"success": true,
"id": "test@test.com",
"errorActor": null,
"errorCode": null,
"errorMessage": null
}]' schema: $ref: '#/definitions/CreateResult' '400': description: '' /whiteboard/delete: delete: tags: - Whiteboard summary: Deletes a whiteboard by id. Removes per-user data, statistics and labels via the downstream service. description: '' operationId: delete_5 consumes: - application/json produces: - application/json parameters: - name: id in: query description: ID of the whiteboard to delete required: true type: integer format: int64 responses: '204': description: The deletion completed. '400': description: id was not supplied or was invalid, or no whiteboard exists for the supplied id. /meta/detachTags: post: tags: - Meta summary: Detach tags description: Detach tags operationId: detachTags consumes: - application/json parameters: - name: entityId in: query description: Entity id required: false type: integer format: int64 - name: entityType in: query description: Entity type required: false type: string - name: tags in: query description: Entity tags required: false type: array items: type: string collectionFormat: multi responses: '200': description: '' '400': description: '' /addressAttributes/list: get: tags: - Address Attributes summary: List address attributes (read-only, from metadata service) description: '' operationId: list produces: - application/json responses: '200': description: OK schema: type: array items: $ref: '#/definitions/AddressAttributeInfo' /contact/export: get: tags: - Contact summary: Export a contact (GDPR) description: Pushes asynchronous GDPR contact export, which will send system message with the link in the end. operationId: export consumes: - application/json parameters: - name: contactId in: query description: The user ID of the contact to perform export for. required: true type: integer format: int64 - name: notificationRecipient in: query description: Active system user which is going to be used for permission checks, and will get system message. required: true type: string responses: '200': description: '' schema: type: boolean '400': description: Parameter contactId and notificationRecipient are mandatory, but are missing or incorrect. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /usagestatistics/export: get: tags: - Usage Statistics summary: Export usage statistics description: 'Export usage statistics
Notes: If the request to generate export is successful, then show "Usage Statistics Export Job ID is being generated. The notification user will receive an email when the export is ready."

If the request to generate export is unsuccessful, then show "The request has failed. Please get in touch with your Account Representative and quote [API error code]."
Request body example:
{
"entityKey": "23",
"code": null,
"message": "Usage Statistics Export with exportDefinitonId entity key is being generated. The notification user will receive an email when the export is ready."
}
' operationId: ExportGetUsageStatistics consumes: - application/json parameters: - name: fromDate in: query description: From date request required: true type: string - name: toDate in: query description: To date request required: true type: string - name: format in: query required: true type: string - name: destination in: query required: true type: string - name: notificationUser in: query required: true type: string responses: '200': description: '' schema: $ref: '#/definitions/CallResult' '400': description: '' /membership/findAllByEmail: get: tags: - Membership summary: Find all memberships for a user by email description: Returns the membership information of a user identified by email. operationId: findAllByEmail parameters: - name: email in: query description: Email of the user required: true type: string responses: '200': description: 'Example response:

[{
"userId": 18061450504,
"groupId": 1800116178,
"attributes": [] }, {
"userId": 18061450504,
"groupId": 1800138927,
"attributes": []
}]' schema: $ref: '#/definitions/Membership' '400': description: email is mandatory, but is missing or incorrect. / User with email does not exist. /membership/findAll: get: tags: - Membership summary: Find all memberships for a user description: Returns a list of membership objects, one membership object for each group in which the user is a member. operationId: findAll parameters: - name: userId in: query description: ID of the user required: true type: integer format: int64 responses: '200': description: 'Example response:
[{
"userId": 18061450504,
"groupId": 1800116178,
"attributes": [] }, {
"userId": 18061450504,
"groupId": 1800138927,
"attributes": []
}]' schema: $ref: '#/definitions/Membership' '400': description: userId is mandatory, but is missing or incorrect. / User with id does not exist. '404': description: Not found /automation/find: post: tags: - Automation summary: Find automations description: Returns information about one or more time-based / event-based automations. operationId: find consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/AutomationFilter' responses: '200': description: '' schema: $ref: '#/definitions/AutomationDetails' '400': description: '' /draftmessage/find: post: tags: - Draft Message summary: Find draft messages description: 'Finds draft messages specified by a draft message filter. Note: required date format "YYYY-DD-MM"' operationId: FindDraftMessage consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/DraftMessageFilter' responses: '200': description: '' schema: type: array items: type: object '400': description: '' /meta/findByTags: post: tags: - Meta summary: Find entities by tags description: Find by tags operationId: findByTags consumes: - application/json parameters: - name: tags in: query description: Tags required: false type: array items: type: string collectionFormat: multi - name: entityType in: query description: Entity type required: false type: string responses: '200': description: '' schema: $ref: '#/definitions/TaggedEntity' '400': description: '' /group/findIdsByAttributes: post: tags: - Group summary: Find group IDs by attributes description: 'Returns a list of group IDs for all groups in the system that use the specified group attributes.
Group attributes are only available in the group context and consist of a unique name and a value.
Please note that attributes like Group Name or Email cannot be used here.
Request body example:

[{
"name" : " GroupAttributeName ",
"value" : "12345"
}]
' operationId: findIdsByAttributes consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '200': description: 'Example response:

[1800123829]' schema: type: array items: type: object '400': description: '"message": "The provided JSON object representation is incorrect."' /landingpage/find: post: tags: - Landing Page summary: Find landing pages description: Find the landing page. operationId: FindLandingPage consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/LandingpageFilter' responses: '200': description: '' schema: type: array items: type: object '400': description: '' /message/find: post: tags: - Message summary: Find messages description: 'Returns a list of message summary objects that contain information about the messages that match the filter criteria.
You can use this method to retrieve information about a message that has been sent or saved as a prepared message
Request body example:
{
"groupId": 650557972,
"sendoutDateFrom": "2018-09-01T00:00:00",
"sendoutDateTo": "2018-10-01T00:00:00"
}


Request body 2 example:
{
"sendoutDateFrom": "2018-09-01T00:00:00",
"sendoutDateTo": "2018-10-01T00:00:00"
}
' operationId: FindMessage consumes: - application/json parameters: - name: messageFilter in: query description: A filter with the list of returned messages. required: true type: string responses: '200': description: '' schema: type: array items: type: object '400': description: 'Missing parameter (messageFilter) or parameter value, or invalid, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''messageFilter'' is mandatory but no value was specified.",
"parameterName": "messageFilter",
"propertyName": null,
"value": "null"
}


' /preparedmessage/find: post: tags: - Prepared Message summary: Find prepared messages description: 'Returns list of prepared messages. At least one of the following two fields is mandatory:

''lastUpdateDateFrom''

''creationDateFrom'' - must be within 31 days of CreationDateTo.

CreationDateTo if is not given then by default is currentDate, if is given than obligatory is to use creationDateFrom as well.

To get the result faster, use limit (1-500)
Request body examples:

{
"externalMessageId": "MessageID"
}

{
"creationDateFrom": "2020-07-10",
"messageName" : "MessageToBeArchived",
"limit":1
}

{
"creationDateFrom": "2020-07-10",
"creationDateTo" : "2020-07-15",
"messageName" : "MessageToBeArchived",
"limit":1
}

{
"lastUpdateDateFrom": "2020-07-17",
"messageName" : "MessageToBeArchived",
"limit":1
}

{
"lastUpdateDateFrom": "2020-07-10",
"creationDateTo" : "2020-07-15",
"messageName" : "MessageToBeArchived",
"limit":1
}

{
"creationDateFrom": "2020-07-01",
"lastUpdateDateFrom": "2020-07-10",
"creationDateTo" : "2020-07-15",
"messageName" : "MessageToBeArchived",
"limit":1
}
' operationId: FindPreparedMessage consumes: - application/json parameters: - name: preparedMessageFilter in: query description: A filter with the list of prepared message. required: true type: string responses: '200': description: '' schema: $ref: '#/definitions/PreparedMessageSummary' '400': description: '' /segmentation/find: post: tags: - Segmentation summary: Find selection plans description: "Returns a paged list of selection plans (without node detail). Filter, sort and paging criteria are supplied\ \ in the request body; all fields are optional - send an empty body or {} to list with server defaults.

Body\ \ fields (all optional):Example body
{\n  \"page\": 0,\n  \"size\": 3,\n  \"sort\"\
        : [\"overviewCount.size,desc\", \"createdOn,asc\"],\n  \"name\": \"544\"\n}
" operationId: find_2 consumes: - application/json produces: - application/json parameters: - in: body name: body description: Filter, sort and paging criteria. All fields optional - send {} for server defaults. See the operation description for the full field list. required: false schema: $ref: '#/definitions/SegmentationSearchRequest' x-examples: application/json: "{\n \"page\": 0,\n \"size\": 3,\n \"sort\": [\"overviewCount.size,desc\", \"createdOn,asc\"\ ],\n \"name\": \"544\"\n}" responses: '200': description: A paged list of matching plans (without node detail). schema: $ref: '#/definitions/SegmentationSearchResult' '400': description: bad request /cms/getMimeMessage: get: tags: - CMS summary: Get a CMS message as MIME description: Returns the specified CMS message in MIME message format. operationId: getMimeMessage consumes: - application/json parameters: - name: cmsMessageId in: query description: The ID of the CMS message to be returned. required: true type: integer format: int64 responses: '200': description: '' schema: $ref: '#/definitions/CmsMessageDefinition' '400': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "No cms message found with id ''81301''!",
"objectType": null,
"propertyName": null,
"propertyValue": null
}' /contact/get: post: tags: - Contact summary: Get a contact description: 'Returns a contact object that matches the specified identifier.
Request body examples:

{
"type":"EMAIL",
"value":"test@test.com"
}

{
"type":"MOBILE",
"value":"48505606707"
}

Note: Do not confuse user/get, which is a GET call requiring a user id, with contact/get, which is a POST call requiring a post body containing the identifier to query (email, mobile).' operationId: get consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/ContactIdentifier' responses: '200': description: '' schema: $ref: '#/definitions/Contact' '400': description: 'Bad request. Can have several meanings:
' '403': description: Incorrect system user login credentials. Check username password, and check that the corresponding system user account is Type “API” or “Hybrid”. /draftmessage/get: get: tags: - Draft Message summary: Get a draft message description: Returns a draft message identified by the specified draft message ID. operationId: GetDraftMessage consumes: - application/json parameters: - name: draftMessageId in: query description: ID of draft message required: true type: integer format: int64 responses: '200': description: 'Example response:

{
"id": 18060600,
"name": "Test",
"externalId": null,
"messageCategoryId": null,
"message": {
"subject": "Test",
"emailBodyText": null,
"emailBodyHtml": "Test",
"smsText": null,
"faxText": null,
"emailHeaders": [],
"attachments": [],
"attachmentReferences": null,
"encoding": "ISO-8859-1",
"encodingSMS": "ISO-8859-1",
"imageHandlingMode": "none"
}
}' schema: $ref: '#/definitions/DraftMessage' '400': description: '' '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /group/get: get: tags: - Group summary: Get a group description: Returns the group object of the specified group. The group is identified by group ID. operationId: GetGroup consumes: - application/json parameters: - name: groupId in: query description: ID of the group to be cloned required: true type: integer format: int64 responses: '200': description: 'Example response:


{
"id": 1800150437,
"name": "Group Name",
"description": "Description of the group",
"email": "group@test.com"
}' schema: $ref: '#/definitions/Group' '400': description: Required parameters are missing or incorrect. Group with groupId cannot be found '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /landingpage/getStatus: get: tags: - Landing Page summary: Get a landing page's status description: Returns the publishing status of a landing page. Because these pages are usually associated with the lifetime of a particular email campaign, they may have a differing publishing status. Previously published pages that have become inactive because they are no longer valid are sometimes redirected to another default page. Possible states are:

PUBLISHED

INACTIVE

SCHEDULED
operationId: getStatus consumes: - application/json parameters: - name: landingpageId in: query description: ID of the landing page required: true type: integer format: int64 responses: '200': description: 'Example response:

{
PUBLISHED
}' schema: type: string '400': description: '' /membership/getByEmail: get: tags: - Membership summary: Get a membership by email description: Retrieves the membership information of a contact identified by email in a group specified by groupId. operationId: getByEmail parameters: - name: email in: query description: Email of the user. required: true type: string - name: groupId in: query description: ID of the group. required: true type: integer format: int64 responses: '200': description: 'Example response:

{
"userId": 18223800009,
"groupId": 1800190005,
"attributes": [{
"name": "member.bounceCounter",
"value": "0"
}, {
"name": "member.type",
"value": "normal"
}, {
"name": "member.readMode",
"value": "mail"
}, {
"name": "member.creationDate",
"value": "2015-07-21 16:10:30.0"
}, {
"name": "member.bounced",
"value": "false"
}, {
"name": "member.role",
"value": "member"
}, {
"name": "member.messageCounter",
"value": "0"
}, {
"name": "member.systemWideDeactivated",
"value": "false"
}]
}' schema: $ref: '#/definitions/Membership' '400': description: 'Bad email or group, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "User with email=no.email@example.com does not exist.",
"objectType": "User",
"propertyName": "email",
"propertyValue": "no.email@example.com"
}


Correct email, but that contact is not a member of the specified group:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Membership with membership=userId:18152367016/groupId:2400792595 does not exist.",
"objectType": "Membership",
"propertyName": "membership",
"propertyValue": "userId:18152367016/groupId:2400792595"
}
' /membership/get: get: tags: - Membership summary: Get a membership description: Retrieves the membership information of a user identified by the userId in a group identified by groupId. operationId: GetMembership parameters: - name: userId in: query description: ID of the user. required: true type: integer format: int64 - name: groupId in: query description: ID of the group. required: true type: integer format: int64 responses: '200': description: 'Example response:

{
"userId": 18223800009,
"groupId": 1800190005,
"attributes": [{
"name": "member.bounceCounter",
"value": "0"
}, {
"name": "member.type",
"value": "normal"
}, {
"name": "member.readMode",
"value": "mail"
}, {
"name": "member.creationDate",
"value": "2015-07-21 16:10:30.0"
}, {
"name": "member.bounced",
"value": "false"
}, {
"name": "member.role",
"value": "member"
}, {
"name": "member.messageCounter",
"value": "0"
}, {
"name": "member.systemWideDeactivated",
"value": "false"
}]
}' schema: $ref: '#/definitions/Membership' '400': description: userId and groupId are mandatory, but are missing or incorrect. / User with id does not exist. / Group with id does not exist. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /preparedmessage/get: get: tags: - Prepared Message summary: Get a prepared message description: Returns a prepared message identified by the messageId, personalized for contactId.

trackingOverride controls message tracking consent override behavior:
1 = no override; per-contact tracking consent applies.
2 = full override; open and link-click tracking are enforced for all recipients regardless of individual consent.
Any other value is rejected by this API. operationId: GetPreparedMessage consumes: - application/json parameters: - name: messageId in: query description: The prepared message ID required: true type: integer format: int64 - name: contactId in: query description: 'The contact ID to personalize message for. It has to be the member of the prepared message''s group. Note: empty - Leave contact empty to get not personalized (raw) message' required: true type: integer format: int64 responses: '200': description: '{
"contactId": 45802709,
"messageId": 7579,
"name": "JohnPreparedWithCustom20220215",
"groupId": 3302,
"groupName": "John20220208",
"selectionId": null,
"selectionName": null,
"channelId": 327699,
"channelName": "DMC Email",
"externalId": null,
"messageCategoryId": null,
"messageCategoryName": null,
"trackingOverride": 2,
"message": {
"subject": "JohnPreparedWithCustom20220215",
"emailBodyText": null,
"emailBodyHtml": "JohnPreparedWithCustom20220215\r\nEmail(standard) tt7177798@gmail.comtt7178198@gmail.com\r\nEmail(Custom) OBFUSCATEDtt71778198@gmail.com<\/body><\/html>",
"smsText": null,
"faxText": null,
"emailHeaders": [],
"attachments": [],
"attachmentReferences": null,
"encoding": "ISO-8859-1",
"encodingSMS": "ISO-8859-1",
"imageHandlingMode": "none"
}
}' schema: $ref: '#/definitions/PreparedMessage' '400': description: Please enter a valid prepared message ID, Please enter a valid test contact ID to get the personalized HTML. Leave it blank to get the raw HTML, No membership for user '25493969' in group '2186' found. /mobilePush/getPushMessage: get: tags: - Mobile Push summary: Get a prepared push message description: Get push message. operationId: getPushMessage consumes: - application/json parameters: - name: messageId in: query description: The message ID. required: true type: integer format: int64 responses: '200': description: 'Example response:
{
"messageId" : 1,
"status" : "COMPLETED"
"owner" : {
"firstName" : "Radmila",
"lastName" : "Petrovic",
"email" : "radmila.petrovic@mapp.com"
},
"lastModified" : "2020-07-31T12:44:46.966Z",
"name" : "test name",
"appId" : "1585031493269",
"selectionPlanId" : "768E488C-45C2-4A6F-800B-C569586F1DC5",
"content" : "This is iOS test push ",
"messageTitle" : "Hello",
"description" : "description",
"notificationSound" : "sound1.mp3",
"pushActionType" : "LAUNCH_APP",
"pushActionParams" : "www.test.com",
"buttonCategory" : "apx_read_open",
"buttonActionType" : "OPEN_LANDING_PAGE",
"buttonActionParams" : "https://www.google.com/",
"mediaType" : "IMAGE", - optional
"mediaUrl" : "https://staging11.shortest-route.com/qatest/imgproxy/img/110/5ac68ca5498a5.png",
"scheduledTime" : "2020-07-31T12:44:46.966Z",
"timeZone" : "Europe/Budapest"
"messagePriority" : "HIGH"
}' schema: $ref: '#/definitions/PushMessage' '400': description: One of the parameters is invalid / The message ID or user ID cannot be found. / An unexpected backend error occurred. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /segmentation/getCount: get: tags: - Segmentation summary: Get a segment count description: Returns segment count size for requested selection plan id. operationId: getCount consumes: - application/json parameters: - name: termId in: query description: ID of selection term user wants to get a count for. required: true type: string responses: '200': description: Returned count result with last updated date schema: $ref: '#/definitions/SelectionCountResult' '400': description: Provided term ID is invalid, No term id found for specified ID, An unexpected backend error has occurred. /segmentation/get: get: tags: - Segmentation summary: Get a selection plan description: 'Returns a single selection plan by ID in FULL - every node with its complete selector configuration. This is the lossless read: the returned shape is exactly what update accepts, so a fetch-modify-resubmit round-trip is safe. Use this (not preview) whenever the plan will be edited and saved back.' operationId: get_2 consumes: - application/json produces: - application/json parameters: - name: id in: query description: ID of the plan to retrieve (GUID), e.g. FF784C2A-B3FD-4851-A49A-ECC807E8F8A2. required: true type: string responses: '200': description: The full plan as a JSON document. schema: type: string '400': description: bad request /groupAttributes/get: get: tags: - Group Attributes summary: Get a single group attribute by name description: '' operationId: get_3 produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - name: attributeName in: query required: false type: string responses: '200': description: OK schema: $ref: '#/definitions/GroupAttributeData' '404': description: Not found /memberAttributes/get: get: tags: - Member Attributes summary: Get a single member attribute description: '' operationId: get_4 produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - name: attributeId in: query required: false type: integer format: int64 responses: '200': description: OK schema: $ref: '#/definitions/MemberAttributeData' '404': description: Not found /profileAttributes/get: get: tags: - Profile Attributes summary: Get a single profile attribute by ID description: '' operationId: get_5 produces: - application/json parameters: - name: attributeId in: query required: false type: integer format: int64 responses: '200': description: OK schema: $ref: '#/definitions/ProfileAttribute' '404': description: Not found /systemuser/get: get: tags: - System User summary: Get a system user description: 'Retrieves the system user identified by the specified system user ID, external ID, or email address.Note: It is not required to fill all params fields. It''s enough to fill just one field out off three (systemUserId or email)' operationId: getSystemUser consumes: - application/json parameters: - name: systemUserId in: query description: ID of the user required: true type: integer format: int64 - name: email in: query description: Email of the user required: true type: string - name: externalId in: query description: External ID of the user required: true type: string responses: '200': description: '' schema: $ref: '#/definitions/SystemUser' '400': description: '' '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /user/getByEmail: get: tags: - User summary: Get a user by email description: Returns user data from the profile identified by the provided email address. This includes the unique user ID, email address, mobile number, and profile identifier value. operationId: getUserByEmail parameters: - name: email in: query description: Email of the user required: true type: string responses: '200': description: 'Example response:

{
"id": 18067305231,
"email": "test@test.com",
"mobileNumber": null,
"identifier": null
}' schema: $ref: '#/definitions/User' '400': description: Parameter 'email' is not a valid email address. / User with email does not exist. /user/getByIdentifier: get: tags: - User summary: Get a user by identifier description: Returns the user identified by the specified identifier. If there are more users with the same identifier, the response refers to the last user where this identifier has been assigned. operationId: getByIdentifier parameters: - name: identifier in: query description: Identifier of the user required: true type: string responses: '200': description: 'Example response:

{
"id": 18067305231,
"email": "test@test.com",
"mobileNumber": null,
"identifier": null
}' schema: $ref: '#/definitions/User' '400': description: '' /user/getByMobileNumber: get: tags: - User summary: Get a user by mobile number description: Returns the user identified by the specified identifier. If there are more users with the same identifier, the response refers to the last user where this identifier has been assigned operationId: getByMobileNumber parameters: - name: mobileNumber in: query description: Mobile number of the user required: true type: string responses: '200': description: 'Example response:
{
"id": 18067305231,
"email": "test@test.com",
"mobileNumber": null,
"identifier": null
}' schema: $ref: '#/definitions/User' '400': description: User with mobile number does not exist. / Parameter 'mobileNumber' is not a valid phone number. /user/getMessageHistory: get: tags: - User summary: Get a user's message history description: Retrieves the message history for a recipient for a set time frame.
The maximum time frame is 31 days. The maximum number of messages returned is 5000. sendDate is presented as Datetim operationId: getMessageHistory consumes: - application/json parameters: - name: userId in: query description: User id required: false type: integer format: int64 - name: fromDate in: query description: Start date of time frame in ISO 8601 date time format. required: false type: string - name: toDate in: query description: End date of time frame in ISO 8601 date time format. required: false type: string responses: '200': description: 'Example response:
[
{
"messageID": [354476555],
"externalTransactionId": {},
"externalMessageID": {},
"messageName": ["Test"],
"messageSubject": ["Test"],
"groupId": [353599854],
"groupName": ["Test"],
"groupEmail": ["test@test.com"],
"sendDate": [1491216661590],
"messageType": ["single"],
"status": ["Sent"],
"clicked": [true],
"opened": [false]
}
]' schema: type: array items: type: object '400': description: Parameter 'userID' is mandatory, but missing or incorrect./ user with the given id does not exist. /user/getProfileByEmail: get: tags: - User summary: Get a user's profile by email description: Returns the user's profile, this is identified by the email address. operationId: getProfileByEmail parameters: - name: email in: query description: Email of the user required: true type: string responses: '200': description: 'Example response:
[{
"name": "user.ISOLanguageCode",
"value": "it" }, {
"name": "user.Email",
"value": "test@test.com" }, {
"name": "user.EmailDomain",
"value": "test.de" }, {
"name": "user.LastName",
"value": "Cloned" }, {
"name": "user.FirstName",
"value": "Test" }, {
"name": "user.ISOCountryCode",
"value": "IT" }
}]' schema: $ref: '#/definitions/User' '400': description: Parameter 'email' is mandatory, but missing or incorrect./ user with the given email does not exist. /user/getProfileByMobileNumber: get: tags: - User summary: Get a user's profile by mobile number description: Returns the user's profile, identified by the mobile number operationId: getProfileByMobileNumber parameters: - name: mobileNumber in: query description: Mobile number of the user required: true type: string responses: '200': description: 'Example response:
{
"name": "user.ISOLanguageCode",
"value": "it" }, {
"name": "user.Email",
"value": "test@test.com" }, {
"name": "user.EmailDomain",
"value": "test.de" }, {
"name": "user.LastName",
"value": "Cloned" }, {
"name": "user.FirstName",
"value": "Test" }, {
"name": "user.ISOCountryCode",
"value": "IT" }
}' schema: $ref: '#/definitions/User' '400': description: Parameter 'mobileNumber' is mandatory, but missing or incorrect./ user with the given mobileNumber does not exist. /user/getProfile: get: tags: - User summary: Get a user's profile description: Returns the user's profile (only attributes with a value are shown). The profile consists of attributes that contain user data. All attributes can be accessed system-wide. operationId: getProfile parameters: - name: userId in: query description: ID of the user required: true type: integer format: int64 responses: '200': description: 'Example response:
[{
"name": "user.ISOLanguageCode",
"value": "it" }, {
"name": "user.Email",
"value": "test@test.com" }, {
"name": "user.EmailDomain",
"value": "test.de" }, {
"name": "user.LastName",
"value": "Cloned" }, {
"name": "user.FirstName",
"value": "Test" }, {
"name": "user.ISOCountryCode",
"value": "IT" }
}]' schema: $ref: '#/definitions/User' '400': description: Parameter 'userID' is mandatory, but missing or incorrect./ user with the given id does not exist. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /user/get: get: tags: - User summary: Get a user description: Returns the user identified by the specified user ID. operationId: getUser consumes: - application/json parameters: - name: userId in: query description: ID of the user required: true type: integer format: int64 responses: '200': description: 'Example response:
{
"id": 18067305231,
"email": "test@test.com",
"mobileNumber": null,
"identifier": null
}' schema: $ref: '#/definitions/User' '400': description: Parameter 'userID' is mandatory, but missing or incorrect./ user with the given id does not exist.Error response '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /meta/getAttributeDefinitions: get: tags: - Meta summary: Get attribute definitions description: Returns a list of all active custom attributes that are defined for the users. Attributes with the status 'archived' or 'system' are not included in the list. operationId: getAttributeDefinitions consumes: - application/json responses: '200': description: '[{
"name": "NumberName",
"type": "NUMBER",
"enumerationValues": null,
"active": null },{
"name": "StringName",
"type": "STRING",
"enumerationValues": ["1"],
"active": null
}]' schema: $ref: '#/definitions/AttributeDefinition' '400': description: '' /automation/getDetails: post: tags: - Automation summary: Get automation details description: Returns detailed information for an time-based / event-based automation. operationId: getDetails consumes: - application/json parameters: - name: automationType in: query description: Type of the automation, values [EVENT_BASED, TIME_BASED] required: true type: string enum: - EVENT_BASED - TIME_BASED - name: automationId in: query description: ID of the automation required: true type: integer format: int64 responses: '200': description: '' schema: $ref: '#/definitions/AutomationDetails' '400': description: '' /profileAttributes/getAvailableChannels: get: tags: - Profile Attributes summary: Get available channels for attribute assignment description: '' operationId: getAvailableChannels produces: - application/json responses: '200': description: OK schema: type: array items: $ref: '#/definitions/ChannelInfo' /group/getAttributes: get: tags: - Group summary: Get group attributes description: Provides a list of all group attributes. operationId: getAttributes consumes: - application/json parameters: - name: groupId in: query description: ID of the group for which we request the parameters. required: true type: integer format: int64 responses: '200': description: 'Example response:

[{
"name": "Test",
"value": "12345" }, {
"name": "TestRest",
"value": "12345"
}]' schema: type: array items: type: object '400': description: Required parameters are missing or incorrect. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /message/getHistorical: get: tags: - Message summary: Get historical message data description: Make sure the "datastore_rmo" feature switch is on. In case of trouble contact Support.

Fetch a specific (group) message as it was sent to a defined contact, including resolved personalizations. operationId: getHistorical consumes: - application/json parameters: - name: messageId in: query description: ID of the (sent) message to fetch. required: true type: integer format: int64 - name: contactId in: query description: ID of the contact for whom the message shall be personalized. required: true type: integer format: int64 responses: '200': description: '' schema: $ref: '#/definitions/HistoricalMessage' '400': description: 'Missing parameter (messageId/contactId) or parameter value, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''messageId'' is mandatory but no value was specified.",
"parameterName": "messageId",
"propertyName": null,
"value": "null"
}


Message ID / ContactId does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /meta/getLinkCategories: get: tags: - Meta summary: Get link categories description: Get link categories operationId: getLinkCategories consumes: - application/json responses: '200': description: List of Link categories schema: $ref: '#/definitions/LinkCategory' '400': description: '' /membership/getAttributesByEmail: get: tags: - Membership summary: Get membership attributes by email description: Returns a collection of member attributes for a user within the specified group.
Member attributes are used to save information for an individual user, but in the context of a specific group.
A member attribute contains a specific value for each recipient. The user is identified by the email operationId: getAttributesByEmail parameters: - name: email in: query description: Email of the user required: true type: string - name: groupId in: query description: ID of the group required: true type: integer format: int64 responses: '200': description: 'Example response:
[{
"name": "attribute1",
"value": "0001" }, {
"name": "attribute2",
"value": "0002"
}]' schema: type: array items: type: object '400': description: userId and groupId are mandatory, but are missing or incorrect. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /membership/getAttributes: get: tags: - Membership summary: Get membership attributes description: Returns a collection of member attributes for a user within the specified group.
Member attributes are used to save information for an individual user but in the context of a specific group.
A member attribute contains a specific value for each recipient operationId: GetMembershipAttributes parameters: - name: userId in: query description: ID of the user required: true type: integer format: int64 - name: groupId in: query description: ID of the group required: true type: integer format: int64 responses: '200': description: 'Example response:
[{
"name": "attribute1",
"value": "0001" }, {
"name": "attribute2",
"value": "0002"
}]' schema: type: array items: type: object '400': description: userId and groupId are mandatory, but are missing or incorrect. '404': description: '{
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /message/getStatisticsByExternalMessageId: get: tags: - Message summary: Get message statistics by external ID description: Retrieves statistical data for a sent message that is identified by the external message ID. operationId: getStatisticsByExternalMessageId consumes: - application/json parameters: - name: externalMessageId in: query description: External ID of the message required: true type: string responses: '200': description: 'Example response:

{
"messageId": 1800228386,
"messageName": "Test_Export Campaign Winter Bottom March 2014",
"messageSubject": "Winter Bottom",
"externalMessageId": "ExternalWinter",
"groupId": 1800138893,
"groupName": "Test_Export",
"groupSize": 20,
"sendoutStartDate": 1404721300908,
"sendoutEndDate": 1404721301837,
"selectionName": null,
"statisticValues": [{
"name": "sentsPerFormat",
"value": "email-html-multipart=16" }, {
"name": "uniqueClicker",
"value": "5" }, {
"name": "uniqueConfirmedOpener",
"value": "16" }, {
"name": "clickRate",
"value": "31.25" }],
"senderProfile": "forced"
}
' schema: $ref: '#/definitions/MessageStatistics' '400': description: 'Missing parameter (externalMessageId) or parameter value, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''externalMessageId'' is mandatory but no value was specified.",
"parameterName": "externalMessageId",
"propertyName": null,
"value": "null"
}


External Message ID does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "externalMessageId",
"propertyValue": "24011454555"
}
' /message/getStatistics: get: tags: - Message summary: Get message statistics description: Retrieves statistical data for a sent message. operationId: getStatistics consumes: - application/json parameters: - name: messageId in: query description: ID of the message required: true type: integer format: int64 responses: '200': description: 'Example response:

{
"messageId": 1800228386,
"messageName": "Test_Export Campaign Winter Bottom March 2014",
"messageSubject": "Winter Bottom",
"externalMessageId": "ExternalWinter",
"groupId": 1800138893,
"groupName": "Test_Export",
"groupSize": 20,
"sendoutStartDate": 1404721300908,
"sendoutEndDate": 1404721301837,
"selectionName": null,
"statisticValues": [{
"name": "sentsPerFormat",
"value": "email-html-multipart=16" }, {
"name": "uniqueClickers",
"value": "5" }, {
"name": "uniqueConfirmedOpener",
"value": "16" }, {
"name": "clickRate",
"value": "31.25" }],
"senderProfile": "forced"
}
' schema: $ref: '#/definitions/MessageStatistics' '400': description: 'Missing parameter (messageId) or parameter value, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''messageID'' is mandatory, but missing or incorrect./ message with the given id does not exist.",
"parameterName": "messageId",
"propertyName": null,
"value": "null"
}


Message ID does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /message/getTimeDistributionByExternalMessageId: post: tags: - Message summary: Get message time distribution by external ID description: Retrieves statistical time distribution information for a specific sent message. operationId: getTimeDistributionByExternalMessageId consumes: - application/json parameters: - name: messageId in: query description: ID of the message required: true type: string - name: interval in: query description: 'Interval values: DAILY or HOURLY' required: true type: string enum: - DAILY - HOURLY responses: '200': description: '' schema: $ref: '#/definitions/MessageTimeDistribution' '400': description: 'Missing parameter (messageId/interval) or parameter value, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''messageId'' is mandatory but no value was specified.",
"parameterName": "messageId",
"propertyName": null,
"value": "null"
}


Message ID does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /message/getTimeDistribution: post: tags: - Message summary: Get message time distribution description: Retrieves statistical time distribution information for a specific sent message. operationId: getTimeDistribution consumes: - application/json parameters: - name: messageId in: query description: ID of the message required: true type: integer format: int64 - name: interval in: query description: 'Interval values: DAILY or HOURLY' required: true type: string enum: - DAILY - HOURLY responses: '200': description: '' schema: $ref: '#/definitions/MessageTimeDistribution' '400': description: 'Missing parameter (messageId) or parameter value, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''messageId'' is mandatory but no value was specified.",
"parameterName": "messageId",
"propertyName": null,
"value": "null"
}


Message ID does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /process/getDetails: get: tags: - Process summary: Get process details description: Returns information for the process identified by the specified process ID. operationId: getProcessDetails consumes: - application/json parameters: - name: processId in: query description: Process identifier required: true type: integer format: int64 responses: '200': description: '' schema: $ref: '#/definitions/ProcessDetails' '400': description: '' /profileAttributes/getMarked: get: tags: - Profile Attributes summary: Get recipient statistic settings description: '' operationId: getMarked produces: - application/json responses: '200': description: OK schema: $ref: '#/definitions/RecipientStatisticResult' /relatedData/getRecordsByKey: get: tags: - Related Data summary: Get related data records by key description: 'Returns all related data records stored under the specified key in a related data set.

Response body example - 1 record:

[
{
"datasetName": "products",
"key": "test-user@example.com",
"data": [
{ "name": "hairColor", "value": "green" },
{ "name": "eyeColor", "value": "blue" }
]
}
]


Response body example - empty result:

[]
' operationId: getRecordsByKey produces: - application/json parameters: - name: datasetName in: query description: Name of the related data set required: true type: string - name: key in: query description: Key defining which record(s) to select from the data set required: true type: string responses: '200': description: successful operation schema: type: array items: $ref: '#/definitions/RelatedDataRecord' '400': description: '' /profileAttributes/getCapacity: get: tags: - Profile Attributes summary: Get remaining profile attribute capacity per data type description: '' operationId: getCapacity produces: - application/json responses: '200': description: OK schema: $ref: '#/definitions/AttributeCapacity' /meta/getTags: get: tags: - Meta summary: Get tags description: Get tags operationId: getTags consumes: - application/json parameters: - name: entityId in: query description: Entity id required: false type: integer format: int64 - name: entityType in: query description: Entity type required: false type: string responses: '200': description: '' schema: $ref: '#/definitions/TaggedEntity' '404': description: '' /profileAttributes/getTechnical: get: tags: - Profile Attributes summary: Get technical (system) attributes description: '' operationId: getTechnical produces: - application/json responses: '200': description: OK schema: type: array items: $ref: '#/definitions/ProfileAttribute' /system/getApiVersion: get: tags: - System summary: Get the API version description: Returns information about the API version currently in use. operationId: getApiVersion consumes: - application/json responses: '200': description: '0.95' schema: type: string '400': description: '' /system/getEcmVersion: get: tags: - System summary: Get the Engage build version description: Returns information about the API version currently in use. operationId: getEcmVersion consumes: - application/json responses: '200': description: Build 6.90.554.7 schema: type: string '400': description: '' /async/getNextIndex: get: tags: - Async summary: Get the next result index for a topic description: Returns the next index for the given topic relative to the last call to "async/poll". This call is useful when switching from calling "async/poll" (with a managed index) to calling "async/pollByIndex" where the index is managed by the user. The result value can be used as value for parameter "index" in a follow-up call to "async/pollByIndex". operationId: getNextIndex consumes: - application/json parameters: - name: topic in: query description: Name of the topic. required: true type: string responses: '200': description: '' schema: type: integer format: int64 '400': description: '' /async/getPollCount: get: tags: - Async summary: Get the polled result count for a topic description: Returns the number of result items that were retrieved/polled for a certain topic. operationId: getPollCount consumes: - application/json parameters: - name: topic in: query description: Name of the topic. required: true type: string responses: '200': description: '' schema: type: integer format: int64 '400': description: Required parameters are missing or incorrect. /segmentation/schema: get: tags: - Segmentation summary: Get the selection plan schema description: Returns the selection plan JSON schema as a string. The schema describes every node type, selector and field (including the string-boolean fields such as negated, caseSensitive, present and ignoreYear, which are serialized as the strings "true"/"false"). Fetch it once and validate a plan body against it before calling create or update. Takes no parameters. operationId: schema consumes: - application/json produces: - application/json responses: '200': description: The schema as a JSON document string. schema: type: string '400': description: bad request /async/getSubmitCount: get: tags: - Async summary: Get the submitted job count for a topic description: Returns the number of job results that were submitted for a specific topic. operationId: getSubmitCount responses: '200': description: '' schema: type: integer format: int64 '400': description: '' /usagestatistics/get: get: tags: - Usage Statistics summary: Get usage statistics description: 'Get usage statistics
Request body example:

{
"name": "totalnoofapi2.0callsresponsesize_/usagestatistics/get",
"description": "Total no. of API 2.0 response sizes sent per method",
"unit": "MB",
"counters": [
{
"timestamp": "2020-08-01",
"value": "0,11"
},
{
"timestamp": "2020-08-02",
"value": "0,11"
}
]
}
' operationId: getUsageStatistics consumes: - application/json parameters: - name: fromDate in: query description: The start of the time period to request. required: true type: string - name: toDate in: query description: The end of the time period to request. required: true type: string - name: aggregationPeriod in: query description: The aggregation period. The options are auto (default), daily, or monthly. required: false type: string responses: '200': description: '' schema: $ref: '#/definitions/UsageStatisticsCounters' '400': description: '' /message/getUsedPersonalizations: get: tags: - Message summary: Get used personalizations for a message description: Returns the names of all user and group attributes that are referenced within the header and content area of a prepared message. The reference to the attributes is a personalization placeholder in the body of the message. All of these placeholders are replaced with individual user or message information during sendout. Be aware that this method does not return member attributes. operationId: getUsedPersonalizations consumes: - application/json parameters: - name: messageId in: query description: ID of the message required: false type: integer format: int64 responses: '200': description: 'Example response:
["user.FirstName"]' schema: type: array items: type: object '400': description: '' /message/getManyUsedPersonalizations: post: tags: - Message summary: Get used personalizations for multiple messages description: Returns the names of all user and group attributes that are referenced within the header and content area of a prepared message. The reference to the attributes is a personalization placeholder in the body of the message. All of these placeholders are replaced with individual user or message information during sendout.
Be aware that this method does not return member attributes.
Request body example:

["1800249553","1800202306"]
operationId: getManyUsedPersonalizations consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: string responses: '200': description: 'Example response:
[
{
" entityKey": "81374",
" code": null,
" message": ""
},
{
" entityKey": "81376",
" code": null,
" message": "user.FirstName"
}
]' schema: type: array items: type: object '400': description: 'Message ID does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /groupAttributes/importAttributes: post: tags: - Group Attributes summary: Import group attributes from CSV description: '' operationId: importAttributes consumes: - text/csv produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - name: syncMode in: query required: false type: string responses: '200': description: OK schema: $ref: '#/definitions/GroupAttributeImportResult' /cms/getMessageDefinitions: get: tags: - CMS summary: List CMS message definitions description: Returns a list of all CMS messages that are saved in the system.
Every CMS message contains detailed information that identifies the message and the template that was used for creation. operationId: getMessageDefinitions consumes: - application/json responses: '200': description: '' schema: $ref: '#/definitions/CmsMessageDefinition' '400': description: '' /groupAttributes/list: get: tags: - Group Attributes summary: List group attributes for a group description: '' operationId: list_2 produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 responses: '200': description: OK schema: type: array items: $ref: '#/definitions/GroupAttributeData' /group/getAllGroupSettingsTemplates: get: tags: - Group summary: List group settings templates description: Gets all GroupSettingsTemplates that are defined in the system.
GroupSettingTemplates predefine several settings in a template and can be applied using /group/overrideGroupSettings call.
The mechanism for using GroupSettingTemplates is only available in a special configuration. operationId: getAllGroupSettingsTemplates consumes: - application/json responses: '200': description: 'Example response:

[{
"id": 1,
"name": "test template 0903"
}]' schema: $ref: '#/definitions/GroupSettingsTemplate' '400': description: '' /auditlog/events: get: tags: - Audit Log summary: List Log Tracker audit events description: Returns Log Tracker audit events for a bounded time window. operationId: auditLogEvents produces: - application/json - application/xml parameters: - name: since in: query description: Start of the time window, inclusive. required: true type: string - name: until in: query description: End of the time window, exclusive. required: false type: string - name: actionCategory in: query description: Optional Log Tracker action category filter. required: false type: string enum: - ACCESS - API - AUTOMATION - BLACKLIST - COUPON - EXPORT - GROUP - IMPORT - LANDING_PAGE - MAPPING - MESSAGE - MISC - PREPROCESSING - RELATED_DATA - SELECTION - name: entryType in: query description: Optional comma-separated list of event types. required: false type: string - name: executorId in: query description: Optional executor system user ID filter. required: false type: integer format: int64 - name: referenceType in: query description: Optional reference entity type filter. required: false type: string - name: referenceId in: query description: Optional referenced entity ID filter. required: false type: integer format: int64 - name: pageSize in: query description: Maximum number of rows to request. required: false type: integer format: int32 - name: pageToken in: query description: Opaque cursor token. required: false type: string responses: '200': description: '' schema: $ref: '#/definitions/AuditLogEventsResult' '400': description: Invalid request parameters. '403': description: Missing Log Tracker permission. /memberAttributes/list: get: tags: - Member Attributes summary: List member attributes for a group description: '' operationId: list_3 produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 responses: '200': description: OK schema: type: array items: $ref: '#/definitions/MemberAttributeData' /group/getPreparedMessages: get: tags: - Group summary: List prepared messages for a group description: Returns all of the prepared messages for a specific group. operationId: getPreparedMessages consumes: - application/json parameters: - name: groupId in: query description: ID of the group for which we request the messages required: true type: integer format: int64 responses: '200': description: 'Example response:

[1800197358]' schema: type: array items: type: object '400': description: 'Required parameters are missing or incorrect. Error response: {
"errorActor": "CLIENT",
"errorCode": "PERMISSION_DENIED",
"message": "Permission ''message_view'' denied: SystemUser ''1'' on group ''803725555''.",
"errorId": null
}' '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /process/getProcessList: get: tags: - Process summary: List processes description: Returns a paginated list of processes, optionally filtered by status. Results are ordered by start date descending. Use 'limit' and 'offset' to page through results. operationId: getProcessList consumes: - application/json parameters: - name: status in: query description: 'Optional status filter: PROCESSING, PAUSED, FINISHED, or FAILED' required: false type: string - name: limit in: query description: Maximum number of processes to return. Default 500, max 500. required: false type: integer format: int64 - name: offset in: query description: Number of processes to skip. Default 0. required: false type: integer format: int64 responses: '200': description: '' schema: type: array items: type: object '400': description: '' /profileAttributes/list: get: tags: - Profile Attributes summary: List profile attributes description: '' operationId: list_4 produces: - application/json parameters: - name: archived in: query required: false type: boolean - name: withEnums in: query required: false type: boolean responses: '200': description: OK schema: type: array items: $ref: '#/definitions/ProfileAttribute' /profileAttributes/markForStats: post: tags: - Profile Attributes summary: Mark a profile attribute for recipient statistics description: '' operationId: markForStats produces: - application/json parameters: - name: attributeName in: query required: false type: string responses: default: description: successful operation /meta/mergeAttributeDefinitions: post: tags: - Meta summary: Merge attribute definitions description: 'Updates the list of custom attributes that are available on the interface. It is used to archive, activate, and create custom attributes. This call affects every custom attribute that is available in your system. It updates all of the attributes that are available for saving user data and reusing it in a different context. If an attribute is not mentioned, it is automatically deactivated. Errors and changes are delivered at the end of the process when all attributes are processed. The update cannot be used in an interactional way. Errors do not stop the update process. The attribute with the error is skipped and the process continues with the next attribute. It is not possible to change the attribute name, type, or enumeration with this method. The results of the merge method are as follows: * New attributes are created if the attribute is listed and did not exist before. * Custom attributes that are not listed are archived. * Custom attributes that are listed and are identical to the ones that already exist have no state change. * Custom attributes that are archived and not listed remain archived. * Custom attributes that have a state other than archived/active generate an error and remain unchanged.
Request body example:

[{
"name": "attributename",
"type": "STRING",
"enumerationValues":
[
"value1",
"value2",
"value3"
],
"active": "true"
}]
' operationId: mergeAttributeDefinitions consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: $ref: '#/definitions/AttributeDefinition' responses: '200': description: '' schema: type: array items: type: object '400': description: '' /group/overrideGroupSettings: post: tags: - Group summary: Override group settings description: Overwrites the existing group settings with a new template. operationId: GroupOverrideGroupSettings consumes: - application/json parameters: - name: groupId in: query description: ID of the group for which we change the settings. required: true type: integer format: int64 - name: settingsId in: query description: ID of the configuration template. required: true type: integer format: int64 responses: '204': description: '' '400': description: 'Required parameters are missing or incorrect. Error response: {
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''groupId'' is mandatory but no value was specified.",
"parameterName": "groupId",
"propertyName": null,
"value": "null"
}' /mobilePush/pausePushSend: post: tags: - Mobile Push summary: Pause a push message send description: Pause message send. operationId: pausePushSend consumes: - application/json parameters: - name: messageId in: query description: The message ID. required: true type: integer format: int64 responses: '204': description: '' '400': description: One of the parameters is invalid / The message ID or user ID cannot be found. / An unexpected backend error occurred. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /async/pollByType: get: tags: - Async summary: Poll results for a topic by event type description: Retrieves a specific number of results for a topic from the result queue.
Request body example:

{
"type":"linkClick ",
"limit":"10000"
}

operationId: pollByType consumes: - application/json parameters: - name: type in: query description: 'Type of events you want to check values for: allMessages (Includes all other types EXCEPT sentToMta), linkClick, mtaResponse, smsResponse, readTrack, forwardTrack, conversion, skipTracking, sendTransactional, unsubscribe, sentToMta. To get all available types, you must be able to make at least two separate calls. 1. To allMessages type, and 2. To sentToMta type.' required: true type: string - name: limit in: query description: Number of events to poll. required: true type: integer format: int64 responses: '200': description: '' schema: type: array items: type: object '400': description: Parameters Type and limit are mandatory, but missing or incorrect / given type does not exist. /async/pollByIndex: get: tags: - Async summary: Poll results for a topic by index description: Retrieves a specific number of results for a topic from the result queue, starting from the given offset. operationId: pollByIndex consumes: - application/json parameters: - name: topic in: query description: Name of the topic. required: true type: string - name: index in: query description: A number of the offset to start from. required: true type: integer format: int64 - name: limit in: query description: A number of result items to retrieve. required: true type: integer format: int32 responses: '200': description: '' schema: type: array items: type: object '400': description: Required parameters are missing or incorrect. /async/pollByRange: get: tags: - Async summary: Poll results for a topic within a time range description: Retrieves a specific number of results for a topic from the result queue in the designated period.
Request body example:

{
"type":"linkClick",
"from":"1683637275"
"to":"1683720075"
"limit":"86400"
}
operationId: pollByRange consumes: - application/json parameters: - name: type in: query description: Type of events customer would like to poll (e.g allMessages [This TYPE consolidates all types below except for sentToMta, therefore 2-10 below are included in allMessages], linkClick, mtaResponse, smsResponse, readTrack, forwardTrack, conversion, skipTracking, sendTransactional, unsubscribe, sentToMta [This type must be called separately. For any customer to get all available types their web-service must be able to make at least two separate calls. 1. To allMessages type, and 2. To sentToMta type]) required: true type: string - name: from in: query description: 'Opening timestamp from when the customer would like to get events (warning: timestamp is a time of inserting event to the database, not time of occurring of the event, so if the event happened at 31st of January at 23:59:59 but we had a delay in inserting and it was inserted of 1st of February then timestamp will be on February).' required: true type: integer format: int64 - name: to in: query description: Closing timestamp. required: true type: integer format: int64 - name: limit in: query description: A number of events to fetch. required: true type: integer format: int64 responses: '200': description: '' schema: type: array items: type: object '400': description: Required parameters are missing or incorrect. /async/poll: get: tags: - Async summary: Poll results for a topic description: 'Retrieves a certain amount of results for a topic from the result queue. The result items that were retrieved are deleted from the server once they have been transmitted.
Request body example:

{
"name": "twitter_logo.png",
"contentType": "image/png",
"content": "iVBORw0KGgoAAAANSUhEUgAAABUAAAARCAYAAAAyhueAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASFJREFUeNqslM0NgkAQhRdiAdiAgQ6468EO1INntQOpwFABdqBe9aAdiIl3twS1AbECfJPMkhVZftSXjJPsDh87z2WsNE1Fb3d3z+POVVQIdQ5ShJhqywdEgEgQQ1qwutsbFT4QM4DXFcALwi3YJqDD2bPx4/PGCg/OSw46NwAFA0nU7d7ObUYAHxF+wYMDUU8jiz19aG9TihEbyuS3oSavNmoT5Sm1thA/CkCLsvJ0In5XdnsIKkv+gCaSGZQ8QF7+AXrST0peBH8Ar9+grKfuS1Mgd/wBjb/0lmChvmBr14GgMy5qoiA/N+zcPSNfPN2fCoVF86KlDQxqvc93tl8DaBxALcAi/qLqKuaWpalAffsOz8iB4ZRSzYIymNJLgAEAYsJkJOLW//gAAAAASUVORK5CYII="
}
' operationId: poll consumes: - application/json parameters: - name: topic in: query description: Name of the topic. required: true type: string - name: limit in: query description: A number of result items to retrieve. required: true type: integer format: int32 responses: '200': description: '' schema: type: array items: type: object '400': description: Required parameters are missing or incorrect. /segmentation/preview: get: tags: - Segmentation summary: Preview a selection plan description: 'Returns a single selection plan by ID in REDUCED form: identity, status, time zone and a lightweight node tree (node types, and per criterion selector type / operator / property / values) but no selector configuration. Cheap to render and reason over. Lossy - never feed this back into update; use get for round-trips.' operationId: preview consumes: - application/json produces: - application/json parameters: - name: id in: query description: ID of the plan to preview (GUID), e.g. FF784C2A-B3FD-4851-A49A-ECC807E8F8A2. required: true type: string responses: '200': description: The reduced plan view as a JSON document. schema: type: string '400': description: bad request /segmentation/publish: post: tags: - Segmentation summary: Publish a selection plan description: Publishes a selection plan by ID, making it the live published version and assigning a selection term id. There is no request body - publishing acts on the plan already saved by create/update. The plan is fully validated on publish (drafts may save with invalid criteria, but publish rejects them). Returns the published plan's metadata (without node detail). operationId: publish consumes: - application/json produces: - application/json parameters: - name: id in: query description: ID of the plan to publish (GUID). required: true type: string - name: isBeta in: query description: Use the beta calculation path. Defaults to false. required: false type: boolean - name: fastCountMode in: query description: Fast-count mode. Defaults to 'off'. required: false type: string responses: '200': description: The published plan's metadata (without node detail). schema: $ref: '#/definitions/SegmentationInfo' '400': description: bad request /whiteboard/publish: post: tags: - Whiteboard summary: Publishes a whiteboard. Schema-validates the DiagramData JSON before delegating to the downstream publish flow. description: '' operationId: publish_2 consumes: - application/json produces: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/AgentPublishPayload' responses: '200': description: The structured activation result. schema: $ref: '#/definitions/ActivationResult' '400': description: The supplied DiagramData JSON failed schema validation, or no whiteboard exists for the specified id. /ecommerce/registerTransaction: post: tags: - Ecommerce summary: Register a transaction description: 'Register an ecommerce transaction
Request body example - with custom columns:

{
"transactionItems": [
{
"orderId": "20220204",
"productName": "BOSS bag",
"productSKU": "XXX-123-ABC",
"category": "Exclusive bags",
"brand": "BOSS",
"storeId": "gdg4535fsgdfg",
"purchaseSource": "http://www.mango.com",
"discountValue": "0",
"variant": "BLACK",
"productQuantity": "2",
"discountPercentage": "2",
"imageURL": "http://www.boss.com/bag.jpg",
"productURL": "http://www.boss.com/bag.jpg",
"currency": "PLN",
"timestamp": "2022-02-03T18:25:43",
"productPrice": "45",
"customDetail1": "90",
"customDetail2": "2022-02-03",
"customDetail3": "Sent"
}
]
}


Request body example - 2 items:

{
"transactionItems": [
{
"orderId": "123",
"productName": "BOSS bag",
"productSKU": "XXX-123-ABC",
"category": "Exclusive bags",
"brand": "BOSS",
"storeId": "gdg4535fsgdfg",
"purchaseSource": "http://www.mango.com",
"discountValue": "0",
"variant": "BLACK",
"productQuantity": "1",
"discountPercentage": "2",
"imageURL": "http://www.boss.com/bag.jpg",
"productURL": "http://www.boss.com/bag.jpg",
"currency": "PLN",
"timestamp": "2021-12-15T18:25:43",
"productPrice": "45"
},
{
"orderId": "124",
"productName": "Black Socks",
"productSKU": "XXX-123-UIO",
"category": "Premium Socks",
"brand": "Atlantic",
"storeId": "gdg4535fsgdfg",
"purchaseSource": "http://www.mango.com",
"discountValue": "0",
"variant": "RED",
"productQuantity": "2",
"discountPercentage": "1",
"imageURL": "http://www.atlantic.com/socks.jpg",
"productURL": "http://www.atlantic.com/socks.jpg",
"currency": "PLN",
"timestamp": "2021-12-15T18:25:43",
"productPrice": "12"
}
]
}
' operationId: registerTransaction consumes: - application/json produces: - application/json parameters: - name: userEmail in: query description: Email of the user required: true type: string - name: transaction in: query description: Transaction item required: true type: string responses: '200': description: '' '400': description: Required parameters are missing or incorrect. /user/replaceProfileByEmail: post: tags: - User summary: Replace a user's profile by email description: 'Replaces all attribute values for a specific user. All attribute values that are transmitted with the method are added and replace any existing values.

Any currently existing attribute values that are not found in the API call are deleted (except for Member attributes).
Request body example:
[
{"name" : "user.firstname", "value" : "FirstName"},
{"name" : "user.lastname", "value" : "LastName"}
]


Maximum character lengths for standard attribute values:Other standard attributes (Email, MobileNumber, ISOCountryCode, ISOLanguageCode, TimeZone, Title, DateOfBirth) are validated by format/enum, not by length. Note that Email is stored in a column of length 129.

Custom attribute values are limited to 2000 characters.

Values exceeding these limits are rejected with HTTP 400 (INVALID_PARAMETER); during contact import, oversized values are silently truncated.' operationId: replaceProfileByEmail consumes: - application/json parameters: - name: email in: query description: Email of the user required: false type: string - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '204': description: '' '400': description: Parameter 'email' is mandatory, but missing or incorrect./ user with the given email does not exist. /user/replaceProfileByMobileNumber: post: tags: - User summary: Replace a user's profile by mobile number description: 'Replaces all attribute values for a specific user. All attribute values that are transmitted with the method are added and replace any existing values.

Any currently existing attribute values that are not found in the API call are deleted (except for Member attributes).
Request body example:
[
{"name" : "user.firstname", "value" : "FirstName"},
{"name" : "user.lastname", "value" : "LastName"}
]


Maximum character lengths for standard attribute values:Other standard attributes (Email, MobileNumber, ISOCountryCode, ISOLanguageCode, TimeZone, Title, DateOfBirth) are validated by format/enum, not by length. Note that Email is stored in a column of length 129.

Custom attribute values are limited to 2000 characters.

Values exceeding these limits are rejected with HTTP 400 (INVALID_PARAMETER); during contact import, oversized values are silently truncated.' operationId: replaceProfileByMobileNumber consumes: - application/json parameters: - name: mobileNumber in: query description: Mobile number of the user required: false type: string - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '204': description: '' '400': description: Parameter 'mobileNumber' is mandatory, but missing or incorrect./ user with the given mobileNumber does not exist. /user/replaceProfile: post: tags: - User summary: Replace a user's profile description: 'Replaces all attribute values for a specific user. All attribute values that are transmitted with the method are added and replace any existing values.

Any currently existing attribute values that are not found in the API call are deleted (except for Member attributes).
Request body example:
[
{"name" : "user.firstname", "value" : "John"},
{"name" : "user.lastname", "value" : "Smith"}
]


Request body example - erase mobile number:
[
{"name" : "user.MobileNumber", "value" : null}
]


Maximum character lengths for standard attribute values:Other standard attributes (Email, MobileNumber, ISOCountryCode, ISOLanguageCode, TimeZone, Title, DateOfBirth) are validated by format/enum, not by length. Note that Email is stored in a column of length 129.

Custom attribute values are limited to 2000 characters.

Values exceeding these limits are rejected with HTTP 400 (INVALID_PARAMETER); during contact import, oversized values are silently truncated.' operationId: replaceProfile consumes: - application/json parameters: - name: userId in: query description: ID of the user required: false type: integer format: int64 - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '204': description: '' '400': description: Parameter 'userID' is mandatory, but missing or incorrect./ user with the given id does not exist. '404': description: Not Found /membership/replaceAttributes: post: tags: - Membership summary: Replace membership attributes description: 'Replaces the member attributes for a contact within a group where the contact is a member
Request body example:

[{
"name" : "attribute1",
"value" : "0001"
},
{
"name" : "attribute2",
"value" : "0002"
}]
' operationId: replaceAttributes parameters: - name: userId in: query description: ID of the user required: true type: integer format: int64 - name: groupId in: query description: ID of the group required: true type: integer format: int64 - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '200': description: '' '400': description: userId and groupId are mandatory, but are missing or incorrect. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /profileAttributes/restore: post: tags: - Profile Attributes summary: Restore archived profile attributes description: '' operationId: restore consumes: - application/json produces: - application/json responses: default: description: successful operation /mobilePush/resumePushSend: post: tags: - Mobile Push summary: Resume a push message send description: Resume message send. operationId: resumePushSend consumes: - application/json parameters: - name: messageId in: query description: The message ID. required: true type: integer format: int64 responses: '204': description: '' '400': description: One of the parameters is invalid / The message ID or user ID cannot be found. / An unexpected backend error occurred. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /whiteboard/get: get: tags: - Whiteboard summary: Returns a single whiteboard (all versions) by id. description: '' operationId: get_6 consumes: - application/json produces: - application/json parameters: - name: id in: query description: ID of the whiteboard to return required: true type: integer format: int64 responses: '200': description: Pass-through whiteboard JSON (all versions). schema: type: string '400': description: id was not supplied or was invalid, or no whiteboard exists for the supplied id. /whiteboard/listTemplates: get: tags: - Whiteboard summary: Returns the active static whiteboard templates served by the Audience Interaction Planner service. description: '' operationId: listTemplates consumes: - application/json produces: - application/json responses: '200': description: The active static whiteboard templates. schema: type: array items: $ref: '#/definitions/WhiteboardTemplate' /whiteboard/find: get: tags: - Whiteboard summary: Returns a paginated list of whiteboard summaries for the calling customer, optionally filtered by name / status and ordered by last update date. description: '' operationId: find_3 consumes: - application/json produces: - application/json parameters: - name: nameFilter in: query description: Substring filter on whiteboard name (>= 3 chars) required: false type: string - name: statusFilter in: query description: AutomationStatus value (DRAFT, ACTIVE, ...) required: false type: string - name: sortByDate in: query description: ASC or DESC, applied to lastUpdateDate required: false type: string - name: page in: query description: 1-based page index, defaults to 1 required: false type: integer format: int64 - name: limit in: query description: Page size, defaults to 100 required: false type: integer format: int64 responses: '200': description: A page of whiteboard summaries and the total matching count. schema: $ref: '#/definitions/WhiteboardPage' '400': description: An invalid sort direction or status value was supplied. /whiteboard/schema: get: tags: - Whiteboard summary: Returns the canonical whiteboard JSON Schema served by the Audience Interaction Planner service. description: '' operationId: schema_2 consumes: - application/json produces: - application/json responses: '200': description: The raw JSON Schema document. schema: type: string /automation/runOnce: get: tags: - Automation summary: Run a time-based automation once description: Performs one execution of the specified time-based automation. Execution takes place immediately.
Run once does not change the status or schedule of the automation.
You can only use this method to run an existing time-based automation. operationId: runOnce consumes: - application/json parameters: - name: automationId in: query description: ID of the automation required: true type: integer format: int64 responses: '200': description: 'Example response: {
"processId": null,
"processingType": "SYNC"
}' schema: $ref: '#/definitions/RunOnceResult' '400': description: '' /draftmessage/saveAsPreparedMessage: get: tags: - Draft Message summary: Save a draft message as a prepared message description: Saves draft message as a prepared message. The channel ID is available at the "Information" panel for each channel, at "Administration > Channels". operationId: saveAsPreparedMessage consumes: - application/json parameters: - name: draftMessageId in: query description: The draft message to be used in creating the prepared message required: true type: integer format: int64 - name: groupId in: query description: The id of the group to perform sendout on required: true type: integer format: int64 - name: channelId in: query description: The channel id associated with the message required: false type: integer format: int64 - name: senderProfileName in: query description: TLS sender profile. Requires a Feature Switch and setting up a profile name in Mapp Engage. (optional) required: true type: string responses: '200': description: successful operation schema: type: string '204': description: '' '400': description: '' /preparedmessage/send: get: tags: - Prepared Message summary: Send a prepared message description: Send prepared messages based on a given send datetime. operationId: send consumes: - application/json parameters: - name: preparedMessageId in: query description: The id of the prepared message you want to send. required: true type: integer format: int64 - name: sendDateTime in: query description: Sendout date-time. ISO_8601 format, in URL encoded form required: true type: string - name: processingDateTime in: query description: The preprocessing date-time (optional). ISO_8601 format, in URL encoded form required: false type: string - name: selectionId in: query description: A selection id to associate with the sendout (optional). required: false type: integer format: int64 - name: bestSendoutTime in: query description: True/False. required: true type: string - name: bestSendoutTimeDefault in: query description: '17:00.' required: true type: string - name: bestSendoutTimeTimezone in: query description: Europe/Berlin. required: true type: string responses: '200': description: '' schema: $ref: '#/definitions/PreparedMessage' '400': description: '' /message/sendSingle: post: tags: - Message summary: Send a single message description: 'Sends a prepared message as a single message to a specific user.

This method automatically adds the user who receives the email to the group of the prepared message.
Attachments can be encoded using base64encode.org.
Request body example:

{
"parameters":
[{"name" : "Parameter Name 1","value" : "Parameter Value 1"},
{"name" : "Parameter Name 2","value": "Parameter Value 2"}],
"attachments":
[{"name" : "image.png",
"contentType" : "application.png",
"content" : "BASE64ENCODING"}]
}
' operationId: sendSingle consumes: - application/json parameters: - name: messageId in: query description: ID of the message required: false type: integer format: int64 - name: recipientId in: query description: ID of the user required: false type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/MessageContent' - name: senderProfileName in: query description: TLS sender profile. Requires a Feature Switch and setting up profile name in Mapp Engage. (optional) required: false type: string responses: '204': description: '' '400': description: 'Missing parameter (messageId/recipientId) or parameter value, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''messageId'' is mandatory but no value was specified.",
"parameterName": "messageId",
"propertyName": null,
"value": "null"
}


Message ID or recipient does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /mobilePush/sendSingle: post: tags: - Mobile Push summary: Send a single mobile push message description: Sends single mobile push message to the specified recipient. operationId: SendSingleMobilePush consumes: - application/json parameters: - name: recipientId in: query description: The user ID of the intended message recipient. required: true type: integer format: int64 - name: campaignId in: query description: The campaign ID of the prepared message to be sent. required: true type: integer format: int64 responses: '204': description: '' '400': description: One of the parameters is invalid / The message ID or user ID cannot be found. / An unexpected backend error occurred. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /mobilePush/multiTenantSendSingle: post: tags: - Mobile Push summary: Send a single multi-tenant mobile push message description: Sends single mobile push message to the specified recipient with child users personalization. operationId: MultiTenantSendSingleMobilePush consumes: - application/json responses: '204': description: '' '400': description: One of the parameters is invalid / The message ID or user ID cannot be found. / An unexpected backend error occurred. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /message/sendTransactionalWithEventDetails: post: tags: - Message summary: Send a transactional message with event details description: 'Sends a previously prepared message as a transactional message including transaction details such as purchase confirmation,
and adds user as member to group the prepared message belong to .
Please be aware this may cause that user to be unexpectedly subscribed or re-subscribed to that group.

User can iterate through the list of items using for each expression to access the individual item.

User can specify any number of attributes aka transaction_details and access them using expression language.

It is strongly recommended to use the same structure for each item.

EXPLANATION
Var value refers to a single object inside the list of itemDetails, the name can by anything, in this case, it''s the product.

Items value refers to eventDetails which is a placeholder for the list of items we want to show.
Max value is a limit of items to be displayed.
If you have max=50 but your JSON has less items, all of them will be displayed.
In the case of JSON with a number greater than the limit, the first 50 items will be shown and the rest will be ignored.
Inside ForEach, user can access itemDetails property using an array index with the name of the property user wants to access

Note that all query parameters are case-sensitive. Take a look at an example below:
- not "eventdetails" but "eventDetails"
- not "itemdetails " but "itemDetails"
"Request body example:

"
{
"parameters":
[
{"name" : "Parameter Name 1","value" : "Parameter Value 1"},
{"name" : "Parameter Name 2","value": "Parameter Value 2"}
],
"attachments": [
{
"name": "twitter_logo.png",
"contentType": "image/png",
"content": "iVBORw0KGgoAAAANSUhEUgAAABUAAAARCAYAAAAyhueAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASFJREFUeNqslM0NgkAQhRdiAdiAgQ6468EO1INntQOpwFABdqBe9aAdiIl3twS1AbECfJPMkhVZftSXjJPsDh87z2WsNE1Fb3d3z+POVVQIdQ5ShJhqywdEgEgQQ1qwutsbFT4QM4DXFcALwi3YJqDD2bPx4/PGCg/OSw46NwAFA0nU7d7ObUYAHxF+wYMDUU8jiz19aG9TihEbyuS3oSavNmoT5Sm1thA/CkCLsvJ0In5XdnsIKkv+gCaSGZQ8QF7+AXrST0peBH8Ar9+grKfuS1Mgd/wBjb/0lmChvmBr14GgMy5qoiA/N+zcPSNfPN2fCoVF86KlDQxqvc93tl8DaBxALcAi/qLqKuaWpalAffsOz8iB4ZRSzYIymNJLgAEAYsJkJOLW//gAAAAASUVORK5CYII="
}
],
"transaction": false /*(optional attribute)*/
"eventDetailsProcessing": /*(optional attribute)*/
{
"groupBy":"brandName",
"groupLabel":"brandName",
"valueField":"productName"
},
"eventDetails":
[
{
"itemDetails":[
{"name":"productName","value":"Chair C1"},
{"name":"brandName", "value":"aaa aaa"}
]
},
{
"itemDetails":[
{"name":"productName","value":"Sofa S1"},
{"name":"brandName", "value":"bbb bbb"}
]

},
{
"itemDetails":[
{"name":"productName","value":"Bed B1"},
{"name":"brandName", "value":"cccc cccc"}
]

}
]
}
' operationId: sendTransactionalWithEventDetails consumes: - application/json parameters: - name: messageId in: query description: ID of the message or prepared message required: false type: integer format: int64 - name: externalTransactionFormula in: query description: External transactional identifier required: false type: string - name: recipientId in: query description: ID of the user required: false type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/TransactionalMessageContent' responses: '204': description: '' '400': description: 'Missing parameter (messageId/recipientId) or parameter value, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''messageId'' is mandatory but no value was specified.",
"parameterName": "messageId",
"propertyName": null,
"value": "null"
}


Message ID or recipient does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /message/sendTransactional: post: tags: - Message summary: Send a transactional message description: 'Sends a prepared message as a transactional message, and adds user as member to group the prepared message belong to.
Please be aware this may cause that user to be unexpectedly subscribed or re-subscribed to that group.
Attachments may be added as part of the JSON payload. If you wish to attach a file to the message, the data must be Base64 encoded
and added as the value of the attachment’s content string, as demonstrated below. Request body example with attachment:

{
"parameters":
[{"name" : "Parameter Name 1","value" : "Parameter Value 1"},
{"name" : "Parameter Name 2","value": "Parameter Value 2"}],
"attachments":
[{"name" : "twitter_logo.png",
"contentType" : "image/png",
"content": "iVBORw0KGgoAAAANSUhEUgAAABUAAAARCAYAAAAyhueAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASFJREFUeNqslM0NgkAQhRdiAdiAgQ6468EO1INntQOpwFABdqBe9aAdiIl3twS1AbECfJPMkhVZftSXjJPsDh87z2WsNE1Fb3d3z+POVVQIdQ5ShJhqywdEgEgQQ1qwutsbFT4QM4DXFcALwi3YJqDD2bPx4/PGCg/OSw46NwAFA0nU7d7ObUYAHxF+wYMDUU8jiz19aG9TihEbyuS3oSavNmoT5Sm1thA/CkCLsvJ0In5XdnsIKkv+gCaSGZQ8QF7+AXrST0peBH8Ar9+grKfuS1Mgd/wBjb/0lmChvmBr14GgMy5qoiA/N+zcPSNfPN2fCoVF86KlDQxqvc93tl8DaBxALcAi/qLqKuaWpalAffsOz8iB4ZRSzYIymNJLgAEAYsJkJOLW//gAAAAASUVORK5CYII="}]
}
' operationId: sendTransactional consumes: - application/json parameters: - name: messageId in: query description: ID of the message or prepared message required: false type: integer format: int64 - name: externalTransactionFormula in: query description: External transactional identifier. If not available, "null" can be used. required: false type: string - name: recipientId in: query description: ID of the user required: false type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/MessageContent' - name: senderProfileName in: query description: TLS sender profile. Requires a Feature Switch and setting up a profile name in Mapp Engage. (optional) required: false type: string responses: '204': description: '' '400': description: 'Missing parameter (messageId/recipientId) or parameter value, for example:

{
"errorActor": "CLIENT",
"errorCode": "MISSING_PARAMETER",
"message": "Parameter ''messageId'' is mandatory but no value was specified.",
"parameterName": "messageId",
"propertyName": null,
"value": "null"
}


Message ID or recipient does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /group/setAttributes: post: tags: - Group summary: Set group attributes description: 'Creates and updates the group attributes. Existing attributes are overwritten.
Request body example:

[{
"name" : "GroupAttributeName",
"value" : "12345"
}]
' operationId: setAttributes consumes: - application/json parameters: - name: groupId in: query description: ID of the group for which we request the parameters. required: true type: integer format: int64 - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '204': description: 'Example response:

{
1}' '400': description: Required parameters are missing or incorrect. /content/store: post: tags: - Content summary: Store a file in the Content Store description: 'Stores a file in the Content Store. Enter name, contentType and base64-encoded content.
The file can be encoded using base64encode.org
File size limit is 512kB.
Request body example:

{
"name": "twitter_logo.png",
"contentType": "image/png",
"content": "iVBORw0KGgoAAAANSUhEUgAAABUAAAARCAYAAAAyhueAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASFJREFUeNqslM0NgkAQhRdiAdiAgQ6468EO1INntQOpwFABdqBe9aAdiIl3twS1AbECfJPMkhVZftSXjJPsDh87z2WsNE1Fb3d3z+POVVQIdQ5ShJhqywdEgEgQQ1qwutsbFT4QM4DXFcALwi3YJqDD2bPx4/PGCg/OSw46NwAFA0nU7d7ObUYAHxF+wYMDUU8jiz19aG9TihEbyuS3oSavNmoT5Sm1thA/CkCLsvJ0In5XdnsIKkv+gCaSGZQ8QF7+AXrST0peBH8Ar9+grKfuS1Mgd/wBjb/0lmChvmBr14GgMy5qoiA/N+zcPSNfPN2fCoVF86KlDQxqvc93tl8DaBxALcAi/qLqKuaWpalAffsOz8iB4ZRSzYIymNJLgAEAYsJkJOLW//gAAAAASUVORK5CYII="
}
' operationId: store consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/Attachment' responses: '200': description: '' schema: $ref: '#/definitions/PreparedMessage' '400': description: '' /async/submit: get: tags: - Async summary: Submit an asynchronous job for a topic description: Initiates an asynchronous job by providing a topic name (script name) and input data (arguments).
The script name references an API script that is individually created for your system.
CEP receives the request and processes the script asynchronously.

Results can be polled from the result queue by topic name. operationId: submit responses: '200': description: '' schema: type: string '400': description: Required parameters are missing or incorrect. /membership/subscribeByEmail: post: tags: - Membership summary: Subscribe a contact to a group by email description: Subscribes a recipient to a group.
The recipient must exist in the system.

Example:
https:///api/rest/v19/membership/subscribeByEmail?email=j.mcexample@example.com&groupId=12345978&subscriptionMode=OPT_IN operationId: subscribeByEmail parameters: - name: email in: query description: 'Email of the user.

Important note! Some special characters in an email address must be URL encoded, such as the "+", "]" and "]" characters, for example:

name+surname@test.com should be encoded as name%2Bsurname@test.com

name[surname@test.com should be encoded as name%5Bsurname@test.com

name]surname@test.com should be encoded as name%5Dsurname@test.com

The "@" symbol used to separate the local part from the domain can be used with or without being URL encoded. Engage will accept both formats as the separator symbol. For example, both the following addresses are valid and identical for Engage: my.address@example.com or my.address%40example.com' required: true type: string - name: groupId in: query description: ID of the group required: true type: integer format: int64 enum: - 0-100 - name: subscriptionMode in: query description: CONFIRMED_OPT_IN - New contacts receive a welcome message via email when they are added to the group. Despite the label used for this value, the contact does not need to confirm the subscription. A single opt-in subscription.``
DOUBLE_OPT_IN - New contacts receive an invitation to join the group via email. The contact must accept the invitation before they are added to the group. A double opt-in subscription.
OPT_IN - New contacts are added to the group without notification. required: true type: string enum: - CONFIRMED_OPT_IN - DOUBLE_OPT_IN - OPT_IN responses: '204': description: '' '400': description: Parameter 'email' is not a valid email address. / User with email does not exist. / Group with id is archived. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /membership/subscribe: post: tags: - Membership summary: Subscribe a user to a group description: Subscribes a user to a group. With this call, the subscription is handled as a self subscription.
Depending on the subscription mode used, the user may have to confirm the subscription (opt-in) and may be notified of the successful subscription. operationId: subscribe parameters: - name: userId in: query description: ID of the user required: true type: integer format: int64 - name: groupId in: query description: ID of the group required: true type: integer format: int64 - name: subscriptionMode in: query description: CONFIRMED_OPT_IN - New contacts receive a welcome message via email when they are added to the group. The contact does not need to confirm the subscription. A single opt-in subscription.
DOUBLE_OPT_IN - New contacts receive an invitation to join the group via email. The contact must accept the invitation before they are added to the group. A double opt-in subscription
OPT_IN - New contacts are added to the group without notification. OPT_IN is creating self-subscribers required: true type: string enum: - CONFIRMED_OPT_IN - DOUBLE_OPT_IN - OPT_IN responses: '204': description: '' '400': description: Parameter 'userId' is mandatory but no value was specified. / User with id does not exist. '404': description: Not found /segmentation/triggerCount: post: tags: - Segmentation summary: Trigger a segment count description: Returns count size for requested termId. operationId: triggerCount consumes: - application/json parameters: - name: termId in: query description: ID of selection term user wants to get a count for. required: true type: string responses: '200': description: Returns uuid of order for submitted termId schema: type: string '400': description: Provided term ID is invalid, No term id found for specified ID, An unexpected backend error has occurred. /groupAttributes/export: get: tags: - Group Attributes summary: Trigger async CSV export of group attributes description: '' operationId: export_2 produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 responses: '200': description: OK schema: $ref: '#/definitions/ExportJobResult' /profileAttributes/export: get: tags: - Profile Attributes summary: Trigger async CSV export of profile attributes description: '' operationId: export_3 produces: - application/json responses: '200': description: OK schema: $ref: '#/definitions/ExportJobResult' /profileAttributes/unmarkForStats: post: tags: - Profile Attributes summary: Unmark a profile attribute from recipient statistics description: '' operationId: unmarkForStats produces: - application/json parameters: - name: attributeName in: query required: false type: string responses: default: description: successful operation /membership/unsubscribeByEmail: post: tags: - Membership summary: Unsubscribe a contact from a group by email description: Unsubscribes a contact from a group based on their email address. An unsubscription confirmation email is sent to the contact. operationId: unsubscribeByEmail parameters: - name: email in: query description: Email of the user. required: true type: string - name: groupId in: query description: ID of the group. required: true type: integer format: int64 responses: '204': description: '' '400': description: email and groupId are mandatory, but are missing or incorrect. / User with email does not exist. / Group with id does not exist. /membership/unsubscribeFromMessageByEmail: post: tags: - Membership summary: Unsubscribe a contact from a message by email description: Unsubscribes a user from a group based on an email address. The unsubscription is associated with a specific message. An unsubscribe confirmation email is sent to the user. Returns success only when the user is unsubscribed from the group and the unsubscription is associated with the specified message. operationId: unsubscribeFromMessageByEmail parameters: - name: email in: query description: Email of the user. required: true type: string - name: groupId in: query description: ID of the group. required: true type: integer format: int64 - name: messageId in: query description: ID of the message. required: true type: integer format: int64 responses: '204': description: '' '400': description: email, groupId and messageId are mandatory, but are missing or incorrect. / User with email does not exist. / Group with id does not exist. / Message with id does not exist. / Membership with groupId does not exist. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /membership/unsubscribe: post: tags: - Membership summary: Unsubscribe a user from a group description: Unsubscribes a user from a group. A notification is sent to the manager. operationId: unsubscribe parameters: - name: userId in: query description: ID of the user required: true type: integer format: int64 - name: groupId in: query description: ID of the group required: true type: integer format: int64 - name: unsubscriptionMode in: query description: CONFIRMED_OPT_IN - Contacts receive a message via email when they are removed from the group. Despite the label used for this value, the contact does not need to confirm the unsubscription. A single opt-in unsubscription.
OPT_IN - Contacts are removed from the group without notification email. required: true type: string enum: - CONFIRMED_OPT_IN - OPT_IN responses: '204': description: '' '400': description: userId, groupId and unsubscriptionMode are mandatory, but are missing or incorrect. / User with id does not exist. / Group with id does not exist. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /membership/unsubscribeFromMessage: post: tags: - Membership summary: Unsubscribe a user from a message description: Unsubscribes a user from a group. The unsubscription is associated with a specific message. Notification is sent to the group manager.
Returns success only when the user is unsubscribed from the group and the unsubscription is associated with the specified message. operationId: unsubscribeFromMessage parameters: - name: userId in: query description: ID of the user. required: true type: integer format: int64 - name: groupId in: query description: ID of the group. required: true type: integer format: int64 - name: messageId in: query description: ID of the message. required: true type: integer format: int64 responses: '204': description: '' '400': description: userId, groupId and messageId are mandatory, but are missing or incorrect. / User with id does not exist. / Group with id does not exist. / Message with id does not exist. / Membership with groupId does not exist. '404': description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /contact/update: post: tags: - Contact summary: Update a contact description: 'Can be used to update contacts.
Please Note: If an attribute, for example, mobileNumber, is not included or left empty, any existing value will be removed from the contact’s profile.
Request body examples:

{
"emailAddress": "test20200529@dropmail.mapp.com",
"attributes":
[
{"name": "FirstName", "value": "John"},
{"name": "LastName", "value": "Smith"},
{"name": "mobileNumber", "value": "335056067010"},
{"name": "user.ISOCountryCode", "value": "FR"}
]
}


ContactIdentifierType values: EMAIL - The identifier is an email address.
MOBILE - The identifier is a mobile number.
APP_ALIAS - The identifier is a mobile app alias.
EXTERNAL - The identifier is a value generated by an external system.
ID - Identifier.' operationId: update consumes: - application/json parameters: - name: identifierType in: query description: The type of identifier to be used for the contact update. required: true type: string enum: - APP_ALIAS - EMAIL - EXTERNAL - ID - MOBILE - in: body name: body required: false schema: $ref: '#/definitions/Contact' responses: '200': description: '' schema: $ref: '#/definitions/Contact' '400': description: Parameter unifiedIdentifierName and identifierType are mandatory, but are missing or incorrect. /draftmessage/update: post: tags: - Draft Message summary: Update a draft message description: 'Updates a message draft.
Request body example:

{
"id": 18060600,
"name": "Test Draft Message",
"externalId": null,
"messageCategoryId": null,
"message":
{
"subject": "This is draft test",
"emailBodyText": null,
"emailBodyHtml": "Test",
"smsText": null,
"faxText": null,
"emailHeaders":
[
],
"attachments":
[
],
"attachmentReferences": null,
"encoding": "ISO-8859-1",
"encodingSMS": "ISO-8859-1",
"imageHandlingMode": "none"
}
}
' operationId: UpdateDraftMessage consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/DraftMessage' responses: '200': description: '' '400': description: '' /groupAttributes/update: put: tags: - Group Attributes summary: Update a group attribute description: '' operationId: update_2 consumes: - application/json produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/GroupAttributeData' responses: '200': description: successful operation schema: $ref: '#/definitions/GroupAttributeData' /meta/updateLinkCategory: post: tags: - Meta summary: Update a link category description: Update link categoriy operationId: updateLinkCategory consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/LinkCategory' responses: '204': description: '' '400': description: '' /memberAttributes/update: put: tags: - Member Attributes summary: Update a member attribute for a group description: '' operationId: update_3 consumes: - application/json produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/MemberAttributeData' responses: '200': description: successful operation schema: $ref: '#/definitions/MemberAttributeData' /contact/updateMultichannelContact: post: tags: - Contact summary: Update a multichannel contact description: 'Updates the profile data of an existing multichannel contact,

setting correctly mobile alias.
Request body examples:

{
"emailAddress": "test20200529@dropmail.mapp.com",
"attributes":
[
{"name": "FirstName", "value": "John"},
{"name": "LastName", "value": "Smith"},
{"name": "mobileNumber", "value": "335056067010"},
{"name": "user.ISOCountryCode", "value": "FR"}
]
}


ContactIdentifierType values: EMAIL - The identifier is an email address.
MOBILE - The identifier is a mobile number.
APP_ALIAS - The identifier is a mobile app alias.
EXTERNAL - The identifier is a value generated by an external system.
ID - Identifier.' operationId: updateMultichannelContact consumes: - application/json parameters: - name: identifierType in: query description: The type of identifier to be used for the contact update. required: true type: string enum: - APP_ALIAS - EMAIL - EXTERNAL - ID - MOBILE - in: body name: body required: false schema: $ref: '#/definitions/Contact' responses: '200': description: Boolean value schema: $ref: '#/definitions/Contact' '400': description: Parameter unifiedIdentifierName and identifierType are mandatory, but are missing or incorrect. /preparedmessage/update: post: tags: - Prepared Message summary: Update a prepared message description: Update prepared message.

trackingOverride controls message tracking consent override behavior:
1 = no override; per-contact tracking consent applies.
2 = full override; open and link-click tracking are enforced for all recipients regardless of individual consent.
Any other value is rejected by this API.
On update, omit trackingOverride or send null to preserve the existing stored value; set trackingOverride to 1 explicitly to clear an active override. operationId: UpdatePreparedMessage consumes: - application/json parameters: - in: body name: body description: Prepared message body.

trackingOverride controls message tracking consent override behavior:
1 = no override; per-contact tracking consent applies.
2 = full override; open and link-click tracking are enforced for all recipients regardless of individual consent.
Any other value is rejected by this API.
On update, omit trackingOverride or send null to preserve the existing stored value; set trackingOverride to 1 explicitly to clear an active override. required: true schema: $ref: '#/definitions/PreparedMessage' responses: '204': description: '' '400': description: '' /mobilePush/updatePushMessage: put: tags: - Mobile Push summary: Update a prepared push message description: 'Update prepared push message.
Request body example:

{
"messageId" : 1
"name" : "test name",
"appId" : "1585031493269",
"selectionPlanId" : "768E488C-45C2-4A6F-800B-C569586F1DC5",
"content" : "This is iOS test push ",
"messageTitle" : "Hello",
"description" : "description",
"notificationSound" : "sound1.mp3",
"pushActionType" : "LAUNCH_APP",
"pushActionParams" : "www.test.com",
"buttonCategory" : "apx_read_open",
"buttonActionType" : "OPEN_LANDING_PAGE",
"buttonActionParams" : "https://www.google.com/",
"mediaType" : "IMAGE", - optional
"mediaUrl" : "https://staging11.shortest-route.com/qatest/imgproxy/img/110/5ac68ca5498a5.png",
"scheduledTime" : "2020-07-31T12:44:46.966Z",
"timeZone" : "Europe/Budapest"
"messagePriority" : "high"
}


Required parameters: messageId, name, appId, content, messageTitle

pushActionType enum values [LAUNCH_APP, OPEN_LANDING_PAGE, OPEN_DEEP_LINK, OPEN_STORE]
buttonCategory enum values [apx_yes_no_open, apx_acc_dec_open, apx_buy_open, apx_read_open]
buttonActionType enum values [LAUNCH_APP, OPEN_LANDING_PAGE, OPEN_DEEP_LINK, OPEN_STORE]
mediaType enum values [IMAGE, VIDEO]

IMPORTANT: messagePriority (optional) - Please note that this feature is not activated by default. Please contact your Customer Success Manager to request activation.
' operationId: updatePushMessage consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/PushMessage' responses: '200': description: 'Example response:
{
"messageId": 1,
"messageStatus": "SCHEDULED"
}' schema: $ref: '#/definitions/PushMessageResponse' '400': description: (PushCampaign with messageId= does not exist) /profileAttributes/update: put: tags: - Profile Attributes summary: Update a profile attribute description: '' operationId: update_4 consumes: - application/json produces: - application/json parameters: - name: attributeId in: query required: false type: integer format: int64 - in: body name: body required: false schema: $ref: '#/definitions/ProfileAttributeData' responses: '200': description: successful operation schema: $ref: '#/definitions/ScheduledOperationResult' /segmentation/update: put: tags: - Segmentation summary: Update a selection plan description: "Overwrites an existing selection plan. The query parameter id identifies the plan; the request\ \ body is a wrapper whose json field carries the full plan JSON document as a string (escaped).\ \ Update replaces the whole plan, so fetch the current plan with get first, modify it, then send\ \ it back here. If the plan JSON also contains an id it must match the query id. Returns the updated\ \ plan.

Example body
{\n  \"json\": \"{\\\"id\\\":\\\"FF784C2A-...\\\",\\\"name\\\":\\\"My plan\\\
        \",\\\"nodes\\\":[ ... ]}\"\n}
" operationId: update_5 consumes: - application/json produces: - application/json parameters: - name: id in: query description: ID of the plan to update (GUID). required: true type: string - in: body name: body description: Wrapper carrying the full plan JSON document as a string in its 'json' field. required: false schema: $ref: '#/definitions/SegmentationPayload' x-examples: application/json: "{\n \"json\": \"{\\\"id\\\":\\\"FF784C2A-...\\\",\\\"name\\\":\\\"My plan\\\",\\\"nodes\\\"\ :[ ... ]}\"\n}" responses: '200': description: The updated plan as a JSON document. schema: type: string '400': description: bad request /systemuser/updatePassword: post: tags: - System User summary: Update a system user's password description: Updates or create the system user password identified by the specified system user ID.
Request body example:

{
"systemUserId":1234,
"password":"abcd1234"
}
operationId: updatePassword consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/UserCredentials' responses: '200': description: '' schema: $ref: '#/definitions/CallResult' '400': description: '' /systemuser/update: post: tags: - System User summary: Update a system user description: Updates the existing system user in the system. operationId: updateSystemUser consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/SystemUser' responses: '200': description: '' schema: $ref: '#/definitions/SystemUser' '400': description: '' /user/updateProfileByEmail: post: tags: - User summary: Update a user's profile by email description: 'Updates a user identified via email. Updates all data stored in the attributes with the information saved in the attribute list. This method only changes the information that is explicitly mentioned. Attributes that are not mentioned are not changed (there is also a replace method to change the entire profile of a user and to delete attribute values if the attribute is not mentioned for the user).
Request body example:
[
{"name" : "user.firstname", "value" : "John"},
{"name" : "user.lastname", "value" : "Smith"}
]


Request body example - erase mobile number:
[
{"name" : "user.MobileNumber", "value" : null}
]


Maximum character lengths for standard attribute values:Other standard attributes (Email, MobileNumber, ISOCountryCode, ISOLanguageCode, TimeZone, Title, DateOfBirth) are validated by format/enum, not by length. Note that Email is stored in a column of length 129.

Custom attribute values are limited to 2000 characters.

Values exceeding these limits are rejected with HTTP 400 (INVALID_PARAMETER); during contact import, oversized values are silently truncated.' operationId: updateProfileByEmail consumes: - application/json parameters: - name: email in: query description: Email of the user required: false type: string - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '204': description: '' '400': description: 'Email address not existing in the Engage system provided as a parameter.

Example:
{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "User with email=no.email@example.com does not exist.",
"objectType": "User",
"propertyName": "email",
"propertyValue": "no.email@example.com"
}
' /user/updateProfileByMobileNumber: post: tags: - User summary: Update a user's profile by mobile number description: 'Updates a user identified via mobile number. Updates all data stored in the attributes with the information saved in the attribute list. This method only changes the information that is explicitly mentioned. Attributes that are not mentioned are not changed (there is also a replace method to change the entire profile of a user and to delete attribute values if the attribute is not mentioned for the user).
Request body example:
[
{"name" : "user.firstname", "value" : "FirstName"},
{"name" : "user.lastname", "value" : "LastName"}
]


Maximum character lengths for standard attribute values:Other standard attributes (Email, MobileNumber, ISOCountryCode, ISOLanguageCode, TimeZone, Title, DateOfBirth) are validated by format/enum, not by length. Note that Email is stored in a column of length 129.

Custom attribute values are limited to 2000 characters.

Values exceeding these limits are rejected with HTTP 400 (INVALID_PARAMETER); during contact import, oversized values are silently truncated.' operationId: updateProfileByMobileNumber consumes: - application/json parameters: - name: mobileNumber in: query description: Mobile number of the user required: false type: string - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '204': description: '' '400': description: Parameter 'mobileNumber' is mandatory, but missing or incorrect./ user with the given mobileNumber does not exist. /user/updateProfile: post: tags: - User summary: Update a user's profile description: 'Updates the user''s profile with the information saved in the attribute list. Attributes that are not mentioned are not changed.
Note: There is also a user replaceProfile method to

1) change the entire profile of a user and

2) to delete attribute values if the attribute is not mentioned for the user.

Request body example:
[
{"name" : "user.firstname", "value" : "John"},
{"name" : "user.lastname", "value" : "Smith"},
{"name": "user.ISOCountryCode", "value": "FR"}
]


Request body example - erase mobile number:
[
{"name" : "user.MobileNumber", "value" : null}
]


Maximum character lengths for standard attribute values:Other standard attributes (Email, MobileNumber, ISOCountryCode, ISOLanguageCode, TimeZone, Title, DateOfBirth) are validated by format/enum, not by length. Note that Email is stored in a column of length 129.

Custom attribute values are limited to 2000 characters.

Values exceeding these limits are rejected with HTTP 400 (INVALID_PARAMETER); during contact import, oversized values are silently truncated.' operationId: updateProfile consumes: - application/json parameters: - name: userId in: query description: ID of the user required: false type: integer format: int64 - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '204': description: '' '400': description: Parameter 'userId' is mandatory but no value was specified. / The request didn't contain a request entity. / User with id does not exist. '404': description: Parameter 'userID' is mandatory, but missing or incorrect./ user with the given id does not exist. /membership/updateAttributes: post: tags: - Membership summary: Update membership attributes description: 'Updates the member attributes for a user within a group if the user is a member of the group.

If an attribute already exists, the value will be updated

If not, a new attribute will be created.
Request body example:
[
[
{"name":"car","value":"BMW"},
{"name":"mascot","value":"cat"},
{"name":"age","value":"18"}
]
' operationId: updateAttributes parameters: - name: userId in: query description: ID of the user required: true type: integer format: int64 - name: groupId in: query description: ID of the group required: true type: integer format: int64 - in: body name: body required: false schema: type: array items: $ref: '#/definitions/Attribute' responses: '200': description: '' '400': description: userId and groupId are mandatory, but are missing or incorrect. '404': description: Not found /relatedData/updateRecords: post: tags: - Related Data summary: Update related data records description: 'Updates all or specific records for a key in a related data set. For the requests without filter, the behavior is the same as in file import ("delete all + add").

There is no possibility to update the unique RD column. The unique column is treated as a part of the key that''s why to change such entities it needs to be deleted and created as the new row.
Request body example:

{
"datasetName": "products",
"key": "testuser@domain.com",
"data": [
{
"name": "quantity",
"value": "14"
}
]
,
"filter": [{
"name": "bicycle",
"value": "1"
}]
}
' operationId: updateRecords consumes: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/RelatedDataRecordAndFilter' responses: '200': description: Successful response - number of deleted previous occurrences for the specified key. One record was added schema: type: integer format: int64 '400': description: '' /message/validateList: post: tags: - Message summary: Validate a list of messages description: 'Validates a list of messages for the following functionality: checks that the message is valid (InvalidObjectError -> objecttype message), checks that the message does not contain any invalid content store items, checks that the message does not use archived Attributes (InvalidObjectError -> objecttype attribute).
Request body example:

["1800249570","1800202306"]
' operationId: validateList consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: integer format: int64 responses: '200': description: 'Example response:

[{
"entityId": 1800249570,
"errorCode": "ARCHIVED_ATTRIBUTE",
"errorMessage": "Message contains archived attribute(s) user.CustomAttribute.Attribute1"
}, {
"entityId": 1800202306,
"errorCode": null,
"errorMessage": null
}]' schema: $ref: '#/definitions/MethodResult' '400': description: '' /message/validate: get: tags: - Message summary: Validate a message description: 'Validates a prepared message for the following functionality: check that message is valid (InvalidObjectError -> objecttype message), check that message does not contain invalid content store items, check that message does not use archived Attributes (InvalidObjectError -> objecttype attribute).
Request body example:

["1800249570","1800202306"]
' operationId: validate consumes: - application/json parameters: - name: messageId in: query description: ID of the message required: true type: string responses: '200': description: 'Example response:
{
"entityKey": "1800249570",
"code": "ARCHIVED_ATTRIBUTE",
"message": "Message contains archived attribute(s) user.CustomAttribute.Attribute1."
}' schema: $ref: '#/definitions/CallResult' '400': description: 'Message ID does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /groupAttributes/validateName: get: tags: - Group Attributes summary: Validate group attribute name uniqueness within a group description: '' operationId: validateName produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - name: name in: query required: false type: string responses: '200': description: successful operation schema: type: boolean /message/validateMany: post: tags: - Message summary: Validate many messages description: 'Validates many messages for the following functionality: checks that the message is valid (InvalidObjectError -> objecttype message), checks that the message does not contain any invalid content store items, checks that the message does not use archived Attributes (InvalidObjectError -> objecttype attribute).
Request body example:

["1800249570","1800202306"]
' operationId: validateMany consumes: - application/json parameters: - in: body name: body required: false schema: type: array items: type: integer format: int64 responses: '200': description: 'Example response:

[{
"entityId": 1800249570,
"errorCode": "ARCHIVED_ATTRIBUTE",
"errorMessage": "Message contains archived attribute(s) user.CustomAttribute.Attribute1"
}, {
"entityId": 1800202306,
"errorCode": null,
"errorMessage": null
}]' schema: $ref: '#/definitions/CallResult' '400': description: 'Message does not exist, for example:

{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Message with id=24011454555 does not exist.",
"objectType": "Message",
"propertyName": "id",
"propertyValue": "24011454555"
}
' /memberAttributes/validateName: get: tags: - Member Attributes summary: Validate member attribute name uniqueness within a group description: '' operationId: validateName_2 produces: - application/json parameters: - name: groupId in: query required: false type: integer format: int64 - name: name in: query required: false type: string responses: '200': description: successful operation schema: type: boolean /profileAttributes/validateName: get: tags: - Profile Attributes summary: Validate profile attribute name uniqueness description: '' operationId: validateName_3 produces: - application/json parameters: - name: name in: query required: false type: string responses: '200': description: successful operation schema: type: boolean /whiteboard/validate: post: tags: - Whiteboard summary: Validates a whiteboard. Runs the full model-level validation suite and returns a structured ValidationResult. description: '' operationId: validate_2 consumes: - application/json produces: - application/json parameters: - in: body name: body required: false schema: $ref: '#/definitions/AgentAutomationPayload' responses: '200': description: The structured validation result. schema: $ref: '#/definitions/ValidationResult' '400': description: The supplied JSON could not be parsed or the payload wrapper was malformed. x-apievangelist-provenance: method: searched generated: '2026-08-12' source: https://docs.mapp.com/apidocs/ (per-endpoint OpenAPI fragments) note: Union of the OpenAPI JSON fragments Mapp publishes on each endpoint page. Mapp does not serve one consolidated document at a public URL; the tenant-served Swagger lives at https:///apidoc/swagger.json and requires a tenant. Operation bodies, parameters, responses, tags, summaries and descriptions are verbatim from Mapp. The swagger/basePath/schemes/securityDefinitions envelope is added by API Evangelist from the published Getting Started guide; no operation content was authored. duplicate_operation_ids_suffixed: 30