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: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /contact/checkUpdateVersion: get: tags: - Contact summary: Check contact update version description: Checks if profile update with specified update version (timestamp) has been saved in Data Store. operationId: checkUpdateVersion 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: '{
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Bad Request"
}' /contact/create: post: tags: - Contact summary: Create a contact description: 'Creates a new contact using the information provided in the contact object.

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

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

{
"emailAddress" : "testuser@dropmail.mapp.com"
}
' operationId: create 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.
Request body example:

{
"type":"EMAIL",
"value":"test@test.com"
} 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: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}' /contact/get: post: tags: - Contact summary: Get a contact description: 'Returns a contact object that matches the specified identifier.
Request body examples:

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

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

Note: Do not confuse user/get, which is a GET call requiring a user id, with contact/get, which is a POST call requiring a post body containing the identifier to query (email, mobile).' operationId: get 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:
' '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.
Please Note: If an attribute, for example, mobileNumber, is not included or left empty, any existing value will be removed from the contact’s profile.
Request body examples:

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


ContactIdentifierType values: EMAIL - The identifier is an email address.
MOBILE - The identifier is a mobile number.
APP_ALIAS - The identifier is a mobile app alias.
EXTERNAL - The identifier is a value generated by an external system.
ID - Identifier.' operationId: update 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,

setting correctly mobile alias.
Request body examples:

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


ContactIdentifierType values: EMAIL - The identifier is an email address.
MOBILE - The identifier is a mobile number.
APP_ALIAS - The identifier is a mobile app alias.
EXTERNAL - The identifier is a value generated by an external system.
ID - Identifier.' operationId: updateMultichannelContact 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:///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