Mapp Marketing Cloud Contact API

The Contact API from Mapp Marketing Cloud — 8 operation(s) for contact.

Operations 8

GET /contact/anonymize Anonymize a contact #
GET /contact/checkUpdateVersion Check contact update version #
POST /contact/create Create a contact #
POST /contact/delete Delete a contact #
GET /contact/export Export a contact (GDPR) #
POST /contact/get Get a contact #
POST /contact/update Update a contact #
POST /contact/updateMultichannelContact Update a multichannel contact #

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-contact-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-contact-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mapp Engage public Contact 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: Contact
paths:
  /contact/anonymize:
    get:
      tags:
      - Contact
      summary: Anonymize a contact
      description: Anonymizes contact PII data based on GDPR regulations.
      operationId: anonymize
      parameters:
      - name: contactId
        in: query
        description: The user ID of the contact to perform anonymization for.
        required: true
        schema:
          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
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: boolean
            application/xml:
              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>}'
  /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
      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
        schema:
          type: string
      - name: updateVersion
        in: query
        description: The timestamp to be checked.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Boolean value
          content:
            application/json:
              schema:
                type: boolean
            application/xml:
              schema:
                type: boolean
        '400':
          description: '{<br>"errorActor": "CLIENT",<br>"errorCode": "INVALID_REQUEST",<br>"message": "Bad Request"<br>}'
  /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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
            application/xml:
              schema:
                $ref: '#/components/schemas/Contact'
        '400':
          description: Such contact already exists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
  /contact/delete:
    post:
      tags:
      - Contact
      summary: Delete a contact
      description: Deletes the contact identified by the specified identifier.<br>Request body example:<br><br>{<br>    "type":"EMAIL",<br>    "value":"test@test.com"<br>}
      operationId: delete
      responses:
        '200':
          description: ''
        '400':
          description: ''
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactIdentifier'
  /contact/export:
    get:
      tags:
      - Contact
      summary: Export a contact (GDPR)
      description: Pushes asynchronous GDPR contact export, which will send system message with the link in the end.
      operationId: export
      parameters:
      - name: contactId
        in: query
        description: The user ID of the contact to perform export for.
        required: true
        schema:
          type: integer
          format: int64
      - name: notificationRecipient
        in: query
        description: Active system user which is going to be used for permission checks, and will get system message.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: boolean
            application/xml:
              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>}'
  /contact/get:
    post:
      tags:
      - Contact
      summary: Get a contact
      description: 'Returns a contact object that matches the specified identifier.<br>Request body examples:<br><br><pre>{<br>    "type":"EMAIL",<br>    "value":"test@test.com"<br>}<br><br>{<br>    "type":"MOBILE",<br>    "value":"48505606707"<br>}</pre><br>Note: Do not confuse user/get, which is a GET call requiring a user id, with contact/get, which is a POST call requiring a post body containing the identifier to query (email, mobile).'
      operationId: get
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
            application/xml:
              schema:
                $ref: '#/components/schemas/Contact'
        '400':
          description: 'Bad request. Can have several meanings:<br><ul><li>Error message “cannot deserialize value”: Missing or typo in request body JSON. Remember that EMAIL or MOBILE keywords are case-sensitive and MUST be written in uppercase.</li><li>Error in formatted JSON block: Check the “errorCode” and “message” keys for the error and details, for example:</li><pre>{<br>    "errorActor": "CLIENT",<br>    "errorCode": "NO_SUCH_OBJECT",<br>    "message": "Contact with identifier=nobody.here@example.com does not exist.",<br>    "objectType": "Contact",<br>    "propertyName": "identifier",<br>    "propertyValue": "nobody.here@example.com"<br>}</pre></ul>'
        '403':
          description: Incorrect system user login credentials. Check username password, and check that the corresponding system user account is Type “API” or “Hybrid”.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactIdentifier'
  /contact/update:
    post:
      tags:
      - Contact
      summary: Update a contact
      description: 'Can be used to update contacts. <br>Please Note: If an attribute, for example, mobileNumber, is not included or left empty, any existing value will be removed from the contact’s profile. <br>Request body examples:<br><br><pre>{<br>    "emailAddress": "test20200529@dropmail.mapp.com",<br>    "attributes":<br>    [<br>    {"name": "FirstName", "value": "John"},<br>    {"name": "LastName", "value": "Smith"},             <br>    {"name": "mobileNumber", "value": "335056067010"}, <br>    {"name": "user.ISOCountryCode", "value": "FR"}                        <br>    ]<br>}</pre><br><br>ContactIdentifierType values: EMAIL - The identifier is an email address.<br>MOBILE - The identifier is a mobile number.<br>APP_ALIAS - The identifier is a mobile app alias.<br>EXTERNAL - The identifier is a value generated by an external system.<br>ID - Identifier.'
      operationId: update
      parameters:
      - name: identifierType
        in: query
        description: The type of identifier to be used for the contact update.
        required: true
        schema:
          type: string
          enum:
          - APP_ALIAS
          - EMAIL
          - EXTERNAL
          - ID
          - MOBILE
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
            application/xml:
              schema:
                $ref: '#/components/schemas/Contact'
        '400':
          description: Parameter unifiedIdentifierName and identifierType are  mandatory, but are missing or incorrect.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
  /contact/updateMultichannelContact:
    post:
      tags:
      - Contact
      summary: Update a multichannel contact
      description: 'Updates the profile data of an existing multichannel contact,<br><br>setting correctly mobile alias.<br>Request body examples:<br><br><pre>{<br>    "emailAddress": "test20200529@dropmail.mapp.com",<br>    "attributes":<br>    [<br>    {"name": "FirstName", "value": "John"},<br>    {"name": "LastName", "value": "Smith"},             <br>    {"name": "mobileNumber", "value": "335056067010"}, <br>    {"name": "user.ISOCountryCode", "value": "FR"}                        <br>    ]<br>}</pre><br><br>ContactIdentifierType values: EMAIL - The identifier is an email address.<br>MOBILE - The identifier is a mobile number.<br>APP_ALIAS - The identifier is a mobile app alias.<br>EXTERNAL - The identifier is a value generated by an external system.<br>ID - Identifier.'
      operationId: updateMultichannelContact
      parameters:
      - name: identifierType
        in: query
        description: The type of identifier to be used for the contact update.
        required: true
        schema:
          type: string
          enum:
          - APP_ALIAS
          - EMAIL
          - EXTERNAL
          - ID
          - MOBILE
      responses:
        '200':
          description: Boolean value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
            application/xml:
              schema:
                $ref: '#/components/schemas/Contact'
        '400':
          description: Parameter unifiedIdentifierName and identifierType are  mandatory, but are missing or incorrect.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
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