Mapp Marketing Cloud Prepared Message API

The Prepared Message API from Mapp Marketing Cloud — 4 operation(s) for prepared message.

Operations 4

POST /preparedmessage/find Find prepared messages #
GET /preparedmessage/get Get a prepared message #
GET /preparedmessage/send Send a prepared message #
POST /preparedmessage/update Update a prepared message #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mapp-prepared-message-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mapp-prepared-message-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mapp Engage public Prepared Message 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/
servers:
- url: /api/rest/v19
security:
- basicAuth: []
tags:
- name: Prepared Message
paths:
  /preparedmessage/find:
    post:
      tags:
      - Prepared Message
      summary: Find prepared messages
      description: 'Returns list of prepared messages. At least one of the following two fields is mandatory:<br><br>''lastUpdateDateFrom''<br><br>''creationDateFrom'' - must be within 31 days of CreationDateTo.<br><br>CreationDateTo if is not given then by default is currentDate, if is given than obligatory is to use creationDateFrom as well.<br><br>To get the result faster, use limit (1-500) <br>Request body examples:<br><br><pre>{<br> "externalMessageId": "MessageID"<br>} <br><br>{<br> "creationDateFrom": "2020-07-10",<br> "messageName" : "MessageToBeArchived",<br> "limit":1<br>} <br><br>{<br>"creationDateFrom": "2020-07-10",<br>"creationDateTo" : "2020-07-15",<br>"messageName" : "MessageToBeArchived",<br>"limit":1<br>} <br><br>{<br> "lastUpdateDateFrom": "2020-07-17",<br> "messageName" : "MessageToBeArchived",<br> "limit":1<br>} <br><br>{<br> "lastUpdateDateFrom": "2020-07-10",<br> "creationDateTo" : "2020-07-15",<br> "messageName" : "MessageToBeArchived",<br> "limit":1<br>} <br><br>{<br>"creationDateFrom": "2020-07-01",<br>"lastUpdateDateFrom": "2020-07-10",<br>"creationDateTo" : "2020-07-15",<br>"messageName" : "MessageToBeArchived",<br>"limit":1<br>}</pre>'
      operationId: FindPreparedMessage
      parameters:
      - name: preparedMessageFilter
        in: query
        description: A filter with the list of prepared message.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreparedMessageSummary'
            application/xml:
              schema:
                $ref: '#/components/schemas/PreparedMessageSummary'
        '400':
          description: ''
  /preparedmessage/get:
    get:
      tags:
      - Prepared Message
      summary: Get a prepared message
      description: Returns a prepared message identified by the messageId, personalized for contactId.<br><br>trackingOverride controls message tracking consent override behavior:<br>1 = no override; per-contact tracking consent applies.<br>2 = full override; open and link-click tracking are enforced for all recipients regardless of individual consent.<br>Any other value is rejected by this API.
      operationId: GetPreparedMessage
      parameters:
      - name: messageId
        in: query
        description: The prepared message ID
        required: true
        schema:
          type: integer
          format: int64
      - name: contactId
        in: query
        description: 'The contact ID to personalize message for. It has to be the member of the prepared message''s group. Note: empty - Leave contact empty to get not personalized (raw) message'
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: '{<br>   "contactId": 45802709,<br>   "messageId": 7579,<br>   "name": "JohnPreparedWithCustom20220215",<br>   "groupId": 3302,<br>   "groupName": "John20220208",<br>   "selectionId": null,<br>   "selectionName": null,<br>   "channelId": 327699,<br>   "channelName": "DMC Email",<br>   "externalId": null,<br>   "messageCategoryId": null,<br>   "messageCategoryName": null,<br>   "trackingOverride": 2,<br>   "message":    {<br>      "subject": "JohnPreparedWithCustom20220215",<br>      "emailBodyText": null,<br>      "emailBodyHtml": "<html><body>JohnPreparedWithCustom20220215\r\nEmail(standard) tt7177798@gmail.comtt7178198@gmail.com\r\nEmail(Custom) OBFUSCATEDtt71778198@gmail.com<\/body><\/html>",<br>      "smsText": null,<br>      "faxText": null,<br>      "emailHeaders": [],<br>      "attachments": [],<br>      "attachmentReferences": null,<br>      "encoding": "ISO-8859-1",<br>      "encodingSMS": "ISO-8859-1",<br>      "imageHandlingMode": "none"<br>   }<br>}'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreparedMessage'
            application/xml:
              schema:
                $ref: '#/components/schemas/PreparedMessage'
        '400':
          description: Please enter a valid prepared message ID, Please enter a valid test contact ID to get the personalized HTML. Leave it blank to get the raw HTML, No membership for user '25493969' in group '2186' found.
  /preparedmessage/send:
    get:
      tags:
      - Prepared Message
      summary: Send a prepared message
      description: Send prepared messages based on a given send datetime.
      operationId: send
      parameters:
      - name: preparedMessageId
        in: query
        description: The id of the prepared message you want to send.
        required: true
        schema:
          type: integer
          format: int64
      - name: sendDateTime
        in: query
        description: Sendout date-time. ISO_8601 format, in URL encoded form
        required: true
        schema:
          type: string
      - name: processingDateTime
        in: query
        description: The preprocessing date-time (optional). ISO_8601 format, in URL encoded form
        required: false
        schema:
          type: string
      - name: selectionId
        in: query
        description: A selection id to associate with the sendout (optional).
        required: false
        schema:
          type: integer
          format: int64
      - name: bestSendoutTime
        in: query
        description: True/False.
        required: true
        schema:
          type: string
      - name: bestSendoutTimeDefault
        in: query
        description: '17:00.'
        required: true
        schema:
          type: string
      - name: bestSendoutTimeTimezone
        in: query
        description: Europe/Berlin.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreparedMessage'
            application/xml:
              schema:
                $ref: '#/components/schemas/PreparedMessage'
        '400':
          description: ''
  /preparedmessage/update:
    post:
      tags:
      - Prepared Message
      summary: Update a prepared message
      description: Update prepared message.<br><br>trackingOverride controls message tracking consent override behavior:<br>1 = no override; per-contact tracking consent applies.<br>2 = full override; open and link-click tracking are enforced for all recipients regardless of individual consent.<br>Any other value is rejected by this API.<br>On update, omit trackingOverride or send null to preserve the existing stored value; set trackingOverride to 1 explicitly to clear an active override.
      operationId: UpdatePreparedMessage
      responses:
        '204':
          description: ''
        '400':
          description: ''
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreparedMessage'
        description: Prepared message body.<br><br>trackingOverride controls message tracking consent override behavior:<br>1 = no override; per-contact tracking consent applies.<br>2 = full override; open and link-click tracking are enforced for all recipients regardless of individual consent.<br>Any other value is rejected by this API.<br>On update, omit trackingOverride or send null to preserve the existing stored value; set trackingOverride to 1 explicitly to clear an active override.
        required: true
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication with a Mapp Engage system user of type API (or Hybrid).
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://<your-engage-host>/apidoc/swagger.json and requires a tenant. Operation bodies, parameters, responses, tags, summaries and descriptions are verbatim from Mapp. The swagger/basePath/schemes/securityDefinitions envelope is added by API Evangelist from the published Getting Started guide; no operation content was authored.
  duplicate_operation_ids_suffixed: 30