Mapp Engage API

The Mapp Engage REST API (REST 2.0, incremental version v19) exchanges data between external systems and Mapp Engage: create and update contacts, manage group memberships and attributes, send single, transactional and prepared messages, manage mobile push, build and publish segments and whiteboards, register e-commerce events (abandoned cart/browse, wish list, transactions), and retrieve Log Tracker audit events. Authentication is HTTP Basic with a system user of type API. The base URL is tenant-specific: your Engage login host plus /api/rest/v19.

OpenAPI Specification

mapp-engage-openapi.yml Raw ↑
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.<br>Request body example: <br><br><pre>["attributename"]</pre>'
      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.<br>Request body example:<br><br><pre>["1800123820", "1800146953"]</pre>
      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: <br><br>[{<br>    "entityKey": "1800123820",<br>    "code": null,<br>    "message":
            null }, {<br>    "entityKey": "1800146953",<br>    "code": null,<br>    "message": null<br>}]'
        '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: {<br>"errorActor": "CLIENT",<br>"errorCode": "INVALID_REQUEST",<br>"message": "Not
            Found"<br>}'
  /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).<br>Request body example: <br><br><pre>["attributename"]</pre>'
      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.<br>Request body example:<br><br><pre>["1800123820", "1800146953"]</pre>
      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: <br><br>[{<br>"entityKey": "80375",<br>"code": null,<br>"message": null<br>}]'
          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: {<br>"errorActor": "CLIENT",<br>"errorCode": "INVALID_REQUEST",<br>"message": "Not
            Found"<br>}'
  /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: '{<br>"errorActor": "CLIENT",<br>"errorCode": "INVALID_REQUEST",<br>"message": "Bad Request"<br>}'
  /group/clone:
    post:
      tags:
      - Group
      summary: Clone a group
      description: 'Creates a clone of a group that already exists in the system.<br>Most of the sendout options and delivery
        settings are identical for the original and the clone.<br>Group members are not copied<br>Request body example:<br><br><pre>{<br>"name"
        : "Group Name",<br>"description" : "Description of the group",<br>"email" : "group@test.com",<br>"includePreparedMessages"
        : "true",<br>"includeTestUsers" : "false"<br>}</pre>'
      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: <br><br>{<br>"id": 80376,<br>"name": "CloneOfTestGroup0803022-1",<br>"description":
            "magna labore dolor eu Lorem",<br>"email": "cloneoftestgroup0803022-1@docker01.dmclab.muc.domeus.com"<br>}'
          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.<br><br>Check Contact_ for
        possible identifiers in the body.<br>Request body examples:<br><br><pre>{<br>"emailAddress": "test20210203@dropmail.mapp.com",<br>"attributes":<br>[<br>{"name":
        "FirstName", "value": "John"},<br>{"name": "LastName", "value": "Smith"},<br>{"name": "mobileNumber", "value": "33505606709"},<br>{"name":
        "user.ISOCountryCode", "value": "FR"}<br>]<br>}<br><br>{<br>  "emailAddress" : "testuser@dropmail.mapp.com"<br>}</pre>'
      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.<br>Request body example:<br><br><pre>{<br>    "name": "Test Draft Message",<br>    "externalId":
        null,<br>    "messageCategoryId": null,<br>    "message":<br>    {<br>        "subject": "This is draft test",<br>        "emailBodyText":
        null,<br>        "emailBodyHtml": "Test",<br>        "smsText": null,<br>        "faxText": null,<br>        "emailHeaders":<br>        [<br>        ],<br>        "attachments":<br>        [<br>        ],<br>        "attachmentReferences":
        null,<br>        "encoding": "ISO-8859-1",<br>        "encodingSMS": "ISO-8859-1",<br>        "imageHandlingMode":
        "none"<br>    }<br>}</pre><br><br>Example body with from and Reply-to headers:<br><br><br><pre>{<br>    "name": "Test
        Draft Message",<br>    "externalId": null,<br>    "messageCategoryId": null,<br>    "message":<br>    {<br>        "subject":
        "This is draft test",<br>        "emailBodyText": null,<br>        "emailBodyHtml": "Test",<br>        "smsText":
        null,<br>        "faxText": null,<br>        "emailHeaders":<br>        [{"name":"from","value":"John<info@qamanual.staging11.shortest-route.com>"},<br>         {"name":"Reply-to","value":"Bob
        <info@qamanual.staging11.shortest-route.com>"}],       <br>        "attachments":[],<br>        "attachmentReferences":
        null,<br>        "encoding": "ISO-8859-1",<br>        "encodingSMS": "ISO-8859-1",<br>        "imageHandlingMode":
        "none"<br>    }<br>}</pre><br>ImageHandlingMode values:<br><pre>"none" - Image links are unchanged <br>"inline" -
        Image are inlined (Offline HTML) <br>"host" - Image are Hosted in Mapp Engage (Online HTML)<br></pre>'
      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: <br><br>{<br>   "errorActor": null,<br>   "errorCode":
            "INVALID_PARAMETER",<br>   "message": "reply-to email must contain valid email domain",<br>   "parameterName":
            null,<br>   "propertyName": null,<br>   "value": null<br>}'
          schema:
            $ref: '#/definitions/DraftMessage'
        '400':
          description: ''
  /group/create:
    post:
      tags:
      - Group
      summary: Create a group
      description: Create a new group.<br>For domain, check Mapp Engage > Create > New Group<br>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: <br><br>{<br>1900328197<br>}'
        '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: <br>{<br>    "userId": 18076325029,<br>    "groupId": 1800116178,<br>    "attributes":
            []<br>}'
          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: {<br>"errorActor": "CLIENT",<br>"errorCode": "INVALID_REQUEST",<br>"message": "Not
            Found"<br>}'
  /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. <br>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. <br><br>datasetName (String, required) - Name of the related data set. All related data records reside within
        a data set identified by a unique name.<br>key (String, required) - Key defining which record(s) to select from the
        data set.<br>data (Attribute, optional) - An optional list of name, value pair.<br>Request body example:<br><br> <pre>{<br>  "datasetName":
        "products",<br>  "key": "testuser@domain.com",<br>  "data": [<br>    {<br>      "name": "productname",<br>      "value":
        "bicycle"        <br>    },<br>    {<br>      "name": "quantity",<br>      "value": "1"     <br>    }   <br>  ]<br>}</pre>'
      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 <code>json</code> field carries the\
        \ raw plan JSON document <b>as a string</b> (escaped). The plan must contain at least <code>name</code> and <code>nodes</code>;\
        \ validate it against <code>schema</code> first. Returns the new plan's id.<br/><br/><b>Example body</b><pre>{\n \
        \ \"json\": \"{\\\"name\\\":\\\"My plan\\\",\\\"timeZoneId\\\":\\\"Europe/Belgrade\\\",\\\"nodes\\\":[ ... ]}\"\n\
        }</pre>"
      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.<br>Request body example:<br><br><pre>{<br>"email":"test1@test.mapp",<br>"firstName":"sf53sd",<br>"lastName":"zf8hzt",<br>"language":"en",<br>"type":"hybrid",<br>"messagingRole":"project_manager"<br>}</pre>
      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.<br>Request body example:<br><pre>[<br>  {"name" : "user.lastname", "value" : "Smith"},<br>  {"name"
        : "DateOfBirth", "value" : "1970-05-05"},<br>  {"name" : "ISOlanguagecode", "value" : "fr"},<br>  {"name": "user.ISOCountryCode",
        "value": "FR"} <br>]</pre>'
      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<br>Request body example:<br><br> <pre>{<br>  "productSKU": "2022-01-13-2",<br>  "timestamp":
        "2022-01-14T17:25:43.511Z",<br>  "productPrice": "1",<br>  "size": "1"<br>}</pre>'
      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<br>Request body example:<br><br><pre>{<br>  "productSKU": "2022-01-13-2",<br>  "timestamp":
        "2022-01-14T17:25:43.511Z",<br>  "productPrice": "1",<br>  "size": "1"<br>}</pre>'
      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<br>Request body example:<br><br><pre>{<br>  "productSKU": "2022-01-13-2",<br>  "timestamp":
        "2022-01-14T17:25:43.511Z",<br>  "productPrice": "1",<br>  "size": "1"<br>}</pre>'
      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.<br>Request body example:<br><br><pre>{<br>    "name" : "test name",<br>    "appId"
        : "1585031493269",<br>    "selectionPlanId" : "768E488C-45C2-4A6F-800B-C569586F1DC5",<br>    "content" : "This is
        iOS test push ",<br>    "messageTitle" : "Hello",<br>    "description" : "description", <br>    "notificationSound"
        : "sound1.mp3",<br>    "pushActionType" : "LAUNCH_APP",<br>    "pushActionParams" : "www.test.com",<br>    "buttonCategory"
        : "apx_read_open",<br>    "buttonActionType" : "OPEN_LANDING_PAGE",<br>    "buttonActionParams" : "https://www.google.com/",<br>    "mediaType"
        : "IMAGE",<br>    "mediaUrl" : "https://staging11.shortest-route.com/qatest/imgproxy/img/110/5ac68ca5498a5.png",<br>    "scheduledTime"
        : "2020-07-31T12:44:46.966Z",<br>    "timeZone" : "Europe/Budapest",<br>    "messagePriority" : "normal",<br>    "archiveOnCompleted"
        : "true"<br>}</pre> <br><br>Another example:<br><br><pre>{<br>    "name" : "test Silvia3",<br>    "appId" : "207084",<br>    "selectionPlanId"
        : "D5398D44-73C8-4B1E-8E99-711BC9CAEBB8",<br>    "content": "yo yo yo 😎",<br>    "messageTitle": "hello 😁",<br>    "notificationSound":
        "",<br>    "pushActionType": "LAUNCH_APP",<br>    "buttonLanguageCode": "en",<br>    "scheduledTime" : "2024-08-31T12:44:46.966Z",<br>    "timeZone"
        : "Europe/Rome",<br>    "messagePriority" : "high",<br>    "archiveOnCompleted" : "false"<br>}</pre> <br><br> Required
        parameters: name, appId, content, messageTitle <br><br>pushActionType enum values [LAUNCH_APP, OPEN_LANDING_PAGE,
        OPEN_DEEP_LINK, OPEN_STORE]<br>buttonCategory enum values [apx_yes_no_open, apx_acc_dec_open, apx_buy_open, apx_read_open]<br>buttonActionType
        enum values [LAUNCH_APP, OPEN_LANDING_PAGE, OPEN_DEEP_LINK, OPEN_STORE]<br>mediaType enum values [IMAGE, VIDEO]<br><br>IMPORTANT:
        messagePriority (optional) - Please note that this feature is not activated by default. Please contact your Customer
        Success Manager to request activation.<br>'
      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: <br>{<br>    "status" : "success",<br>    "messageId" : 1,<br>}'
          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.<br>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.<br>Request body example: <br><br><pre>[{<br>"name":
        "attributename",<br>"type": "STRING",<br>"enumerationValues":<br>[<br>"value1",<br>"value2",<br>"value3"<br>],<br>"active":
        "true"<br>}]</pre>'
      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.<br>Request body example:<br><br><pre>[{<br>"type":
        "EMAIL",<br> "pattern": "test@test.com"<br>}]</pre>'
      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: <br><br>[{<br>    "success": true,<br>    "id": "test@test.com",<br>    "errorActor":
            null,<br>    "errorCode": null,<br>    "errorMessage": null<br>}]'
          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.<br>Request
        body example:<br><br><pre>[<br>    {<br>        "type": "EMAIL",<br>        "pattern":"6a4b6cb2045fd55f706eaebd6ab5d4f7"<br>    },<br>    {<br>        "type":
        "EMAIL",<br>        "pattern":"0dbfb46341bc3d195db23e4015b20847"<br>    }<br>]</pre>'
      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

# --- truncated at 32 KB (215 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mapp/refs/heads/main/openapi/mapp-engage-openapi.yml