openapi: 3.2.0
info:
title: Mapp Engage public User 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: User
paths:
/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.
Request body example:
[' operationId: createUser parameters: - name: email in: query description: Email of the user required: true schema: type: string - name: mobileNumber in: query description: Mobile number of the user required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/User' application/xml: schema: $ref: '#/components/schemas/User' '400': description: User with email does already exist. / One of the parameters 'email' or 'mobileNumber' must not be empty. requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/Attribute' /user/deleteByEmail: delete: tags: - User summary: Delete a user by email description: Deletes the user identified by the email address. operationId: deleteByEmail parameters: - name: email in: query description: Email of the user required: false schema: type: string responses: '204': description: '' '400': description: Parameter 'email' is mandatory, but missing or incorrect. /user/deleteByMobileNumber: delete: tags: - User summary: Delete a user by mobile number description: Deletes the user identified by the mobile number. operationId: deleteByMobileNumber parameters: - name: mobileNumber in: query description: Mobile number of the user required: false schema: type: string responses: '204': description: '' '400': description: Parameter 'mobileNumber' is mandatory, but missing or incorrect. /user/delete: delete: tags: - User summary: Delete a user description: Deletes the user identified by the specified ID operationId: deleteUser parameters: - name: userId in: query description: User id required: false schema: type: integer format: int64 responses: '204': description: '' '400': description: Parameter 'userID' is mandatory, but missing or incorrect. '404': description: Not Found /user/getByEmail: get: tags: - User summary: Get a user by email description: Returns user data from the profile identified by the provided email address. This includes the unique user ID, email address, mobile number, and profile identifier value. operationId: getUserByEmail parameters: - name: email in: query description: Email of the user required: true schema: type: string responses: '200': description: 'Example response:
{"name" : "user.lastname", "value" : "Smith"},
{"name" : "DateOfBirth", "value" : "1970-05-05"},
{"name" : "ISOlanguagecode", "value" : "fr"},
{"name": "user.ISOCountryCode", "value": "FR"}
]
[
{"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
parameters:
- name: email
in: query
description: Email of the user
required: false
schema:
type: string
responses:
'204':
description: ''
'400':
description: Parameter 'email' is mandatory, but missing or incorrect./ user with the given email does not exist.
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Attribute'
/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
parameters:
- name: mobileNumber
in: query
description: Mobile number of the user
required: false
schema:
type: string
responses:
'204':
description: ''
'400':
description: Parameter 'mobileNumber' is mandatory, but missing or incorrect./ user with the given mobileNumber does not exist.
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Attribute'
/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
parameters:
- name: userId
in: query
description: ID of the user
required: false
schema:
type: integer
format: int64
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
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Attribute'
/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
parameters:
- name: email
in: query
description: Email of the user
required: false
schema:
type: string
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"
}'
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Attribute'
/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
parameters:
- name: mobileNumber
in: query
description: Mobile number of the user
required: false
schema:
type: string
responses:
'204':
description: ''
'400':
description: Parameter 'mobileNumber' is mandatory, but missing or incorrect./ user with the given mobileNumber does not exist.
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Attribute'
/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
parameters:
- name: userId
in: query
description: ID of the user
required: false
schema:
type: integer
format: int64
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.
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Attribute'
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://