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.
["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:
["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.
["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:
{
"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: {
"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.{
"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"
}
}{
"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"
}
} "none" - Image links are unchanged' 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:
"inline" - Image are inlined (Offline HTML)
"host" - Image are Hosted in Mapp Engage (Online HTML)
{
"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.{\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.{
"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.[' 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
{"name" : "user.lastname", "value" : "Smith"},
{"name" : "DateOfBirth", "value" : "1970-05-05"},
{"name" : "ISOlanguagecode", "value" : "fr"},
{"name": "user.ISOCountryCode", "value": "FR"}
]
{
"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{
"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{
"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.{
"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"
} {
"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"
} [{
"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.[{
"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: [' 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.
{
"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.
{
"type": "EMAIL",
"pattern":"6a4b6cb2045fd55f706eaebd6ab5d4f7"
},
{
"type": "EMAIL",
"pattern":"0dbfb46341bc3d195db23e4015b20847"
}
]
[{
"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. [{
"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: [{
"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: ["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:
{"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.[{
"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: {
"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: [{
"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: {
"groupId": 650557972,
"sendoutDateFrom": "2018-09-01T00:00:00",
"sendoutDateTo":
"2018-10-01T00:00:00"
}{
"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"
}{
"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.\"field,asc|desc\"; the first entry is\
\ the primary key, the rest are tie-breakers. E.g. \"overviewCount.size,desc\", \"createdOn,asc\"\
.draft or published.{\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: {{
"type":"EMAIL",
"value":"test@test.com"
}
{
"type":"MOBILE",
"value":"48505606707"
}{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message":
"Contact with identifier=nobody.here@example.com does not exist.",
"objectType": "Contact",
"propertyName":
"identifier",
"propertyValue": "nobody.here@example.com"
}'
'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: PUBLISHEDoperationId: 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:
INACTIVE
SCHEDULED
{
"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"
}{
"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: 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": "MISSING_PARAMETER",
"message": "Parameter ''messageId'' is mandatory but no
value was specified.",
"parameterName": "messageId",
"propertyName": null,
"value": "null"
}{
"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.{
"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"
}{
"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"
}{
"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"
}{
"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"
}{
"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.[
{
"datasetName": "products",
"key": "test-user@example.com",
"data": [
{ "name": "hairColor", "value": "green" },
{ "name": "eyeColor", "value": "blue" }
]
}
]
[]' 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{
"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: ["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:
{
"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.[{
"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: {{
"type":"linkClick
",
"limit":"10000"
}{
"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. {
"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{
"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"
}
]
}{
"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.[
{"name" : "user.firstname", "value" : "FirstName"},
{"name" : "user.lastname", "value" : "LastName"}
]
FirstName: 50LastName: 50Nickname:
20ZipCode: 10Identifier: 2000Photo: 2000Email, 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.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.[
{"name" : "user.firstname", "value" : "FirstName"},
{"name" : "user.lastname", "value" : "LastName"}
]
FirstName: 50LastName: 50Nickname:
20ZipCode: 10Identifier: 2000Photo: 2000Email, 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.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.[
{"name" : "user.firstname", "value" : "John"},
{"name" : "user.lastname", "value" : "Smith"}
]
{"name" : "user.MobileNumber", "value" : null}
]FirstName: 50LastName: 50Nickname:
20ZipCode: 10Identifier: 2000Photo: 2000Email, 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.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[{
"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: {{
"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"
}{
"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: {{
"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"
}{
"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. {
"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"
}{
"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.[{
"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: {
"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).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.{
"emailAddress":
"test20200529@dropmail.mapp.com",
"attributes":
[
{"name": "FirstName", "value": "John"},
{"name":
"LastName", "value": "Smith"},
{"name": "mobileNumber", "value": "335056067010"},
{"name":
"user.ISOCountryCode", "value": "FR"}
]
}{
"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,{
"emailAddress": "test20200529@dropmail.mapp.com",
"attributes":
[
{"name":
"FirstName", "value": "John"},
{"name": "LastName", "value": "Smith"},
{"name": "mobileNumber",
"value": "335056067010"},
{"name": "user.ISOCountryCode", "value": "FR"}
]
}{
"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"
} 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.{\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.{
"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).[
{"name" : "user.firstname", "value" : "John"},
{"name" : "user.lastname", "value" : "Smith"}
]
[
{"name" : "user.MobileNumber", "value" : null}
]
FirstName: 50LastName:
50Nickname: 20ZipCode: 10Identifier: 2000Photo:
2000Email, 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.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.{
"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).[
{"name" : "user.firstname", "value" : "FirstName"},
{"name" : "user.lastname", "value" : "LastName"}
]
FirstName: 50LastName:
50Nickname: 20ZipCode: 10Identifier: 2000Photo:
2000Email, 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.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.[
{"name" : "user.firstname", "value" : "John"},
{"name" : "user.lastname", "value" : "Smith"},
{"name": "user.ISOCountryCode", "value": "FR"}
]
{"name" : "user.MobileNumber", "value" : null}
]FirstName: 50LastName: 50Nickname:
20ZipCode: 10Identifier: 2000Photo: 2000Email, 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.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.[' 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").
{"name":"car","value":"BMW"},
{"name":"mascot","value":"cat"},
{"name":"age","value":"18"}
]
{
"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).["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:
["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:
{
"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).["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:
{
"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://