Mapp Marketing Cloud User API

The User API from Mapp Marketing Cloud — 18 operation(s) for user.

Operations 18

POST /user/create Create a user #
DELETE /user/deleteByEmail Delete a user by email #
DELETE /user/deleteByMobileNumber Delete a user by mobile number #
DELETE /user/delete Delete a user #
GET /user/getByEmail Get a user by email #
GET /user/getByIdentifier Get a user by identifier #
GET /user/getByMobileNumber Get a user by mobile number #
GET /user/getMessageHistory Get a user's message history #
GET /user/getProfileByEmail Get a user's profile by email #
GET /user/getProfileByMobileNumber Get a user's profile by mobile number #
GET /user/getProfile Get a user's profile #
GET /user/get Get a user #
POST /user/replaceProfileByEmail Replace a user's profile by email #
POST /user/replaceProfileByMobileNumber Replace a user's profile by mobile number #
POST /user/replaceProfile Replace a user's profile #
POST /user/updateProfileByEmail Update a user's profile by email #
POST /user/updateProfileByMobileNumber Update a user's profile by mobile number #
POST /user/updateProfile Update a user's profile #

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-user-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-user-api-openapi.yml Raw ↑
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.<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
      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:<br><br>{<br>    "id": 18067305231,<br>    "email": "test@test.com",<br>    "mobileNumber": null,<br>    "identifier": null<br>}'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Parameter 'email' is not a valid email address. / User with email does not exist.
  /user/getByIdentifier:
    get:
      tags:
      - User
      summary: Get a user by identifier
      description: Returns the user identified by the specified identifier. If there are more users with the same identifier, the response refers to the last user where this identifier has been assigned.
      operationId: getByIdentifier
      parameters:
      - name: identifier
        in: query
        description: Identifier of the user
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'Example response:<br><br>{<br>    "id": 18067305231,<br>    "email": "test@test.com",<br>    "mobileNumber": null,<br>    "identifier": null<br>}'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: ''
  /user/getByMobileNumber:
    get:
      tags:
      - User
      summary: Get a user by mobile number
      description: Returns the user identified by the specified identifier. If there are more users with the same identifier, the response refers to the last user where this identifier has been assigned
      operationId: getByMobileNumber
      parameters:
      - name: mobileNumber
        in: query
        description: Mobile number of the user
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'Example response: <br>{<br>    "id": 18067305231,<br>    "email": "test@test.com",<br>    "mobileNumber": null,<br>    "identifier": null<br>}'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: User with mobile number does not exist. / Parameter 'mobileNumber' is not a valid phone number.
  /user/getMessageHistory:
    get:
      tags:
      - User
      summary: Get a user's message history
      description: Retrieves the message history for a recipient for a set time frame.<br>The maximum time frame is 31 days. The maximum number of messages returned is 5000. sendDate is presented as Datetim
      operationId: getMessageHistory
      parameters:
      - name: userId
        in: query
        description: User id
        required: false
        schema:
          type: integer
          format: int64
      - name: fromDate
        in: query
        description: Start date of time frame in ISO 8601 date time format.
        required: false
        schema:
          type: string
      - name: toDate
        in: query
        description: End date of time frame in ISO 8601 date time format.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: 'Example response: <br>[<br>  {<br>    "messageID": [354476555],<br>    "externalTransactionId": {},<br>    "externalMessageID": {},<br>    "messageName": ["Test"],<br>    "messageSubject": ["Test"],<br>    "groupId": [353599854],<br>    "groupName": ["Test"],<br>    "groupEmail": ["test@test.com"],<br>    "sendDate": [1491216661590],<br>    "messageType": ["single"],<br>    "status": ["Sent"],<br>    "clicked": [true],<br>    "opened": [false]<br>  }<br>]'
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
            application/xml:
              schema:
                type: array
                items:
                  type: object
        '400':
          description: Parameter 'userID' is mandatory, but missing or incorrect./ user with the given id does not exist.
  /user/getProfileByEmail:
    get:
      tags:
      - User
      summary: Get a user's profile by email
      description: Returns the user's profile, this is identified by the email address.
      operationId: getProfileByEmail
      parameters:
      - name: email
        in: query
        description: Email of the user
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'Example response: <br>[{<br>    "name": "user.ISOLanguageCode",<br>    "value": "it" }, {<br>    "name": "user.Email",<br>    "value": "test@test.com" }, {<br>    "name": "user.EmailDomain",<br>    "value": "test.de" }, {<br>    "name": "user.LastName",<br>    "value": "Cloned" }, {<br>    "name": "user.FirstName",<br>    "value": "Test" }, {<br>    "name": "user.ISOCountryCode",<br>    "value": "IT" }<br>}]'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Parameter 'email' is mandatory, but missing or incorrect./ user with the given email does not exist.
  /user/getProfileByMobileNumber:
    get:
      tags:
      - User
      summary: Get a user's profile by mobile number
      description: Returns the user's profile, identified by the mobile number
      operationId: getProfileByMobileNumber
      parameters:
      - name: mobileNumber
        in: query
        description: Mobile number of the user
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'Example response: <br>{<br>    "name": "user.ISOLanguageCode",<br>    "value": "it" }, {<br>    "name": "user.Email",<br>    "value": "test@test.com" }, {<br>    "name": "user.EmailDomain",<br>    "value": "test.de" }, {<br>    "name": "user.LastName",<br>    "value": "Cloned" }, {<br>    "name": "user.FirstName",<br>    "value": "Test" }, {<br>    "name": "user.ISOCountryCode",<br>    "value": "IT" }<br>}'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Parameter 'mobileNumber' is mandatory, but missing or incorrect./ user with the given mobileNumber does not exist.
  /user/getProfile:
    get:
      tags:
      - User
      summary: Get a user's profile
      description: Returns the user's profile (only attributes with a value are shown). The profile consists of attributes that contain user data. All attributes can be accessed system-wide.
      operationId: getProfile
      parameters:
      - name: userId
        in: query
        description: ID of the user
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: 'Example response: <br>[{<br>    "name": "user.ISOLanguageCode",<br>    "value": "it" }, {<br>    "name": "user.Email",<br>    "value": "test@test.com" }, {<br>    "name": "user.EmailDomain",<br>    "value": "test.de" }, {<br>    "name": "user.LastName",<br>    "value": "Cloned" }, {<br>    "name": "user.FirstName",<br>    "value": "Test" }, {<br>    "name": "user.ISOCountryCode",<br>    "value": "IT" }<br>}]'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Parameter 'userID' is mandatory, but missing or incorrect./ user with the given id does not exist.
        '404':
          description: 'Error response: {<br>"errorActor": "CLIENT",<br>"errorCode": "INVALID_REQUEST",<br>"message": "Not Found"<br>}'
  /user/get:
    get:
      tags:
      - User
      summary: Get a user
      description: Returns the user identified by the specified user ID.
      operationId: getUser
      parameters:
      - name: userId
        in: query
        description: ID of the user
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: 'Example response: <br>{<br>    "id": 18067305231,<br>    "email": "test@test.com",<br>    "mobileNumber": null,<br>    "identifier": null<br>}'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Parameter 'userID' is mandatory, but missing or incorrect./ user with the given id does not exist.Error response
        '404':
          description: 'Error response: {<br>"errorActor": "CLIENT",<br>"errorCode": "INVALID_REQUEST",<br>"message": "Not Found"<br>}'
  /user/replaceProfileByEmail:
    post:
      tags:
      - User
      summary: Replace a user's profile by email
      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.<br><br>Any currently existing attribute values that are not found in the API call are deleted (except for Member attributes).<br>Request body example: <br><pre>[<br>  {"name" : "user.firstname", "value" : "FirstName"},<br>  {"name" : "user.lastname", "value" : "LastName"}<br>]</pre><br><br><b>Maximum character lengths for standard attribute values:</b><ul><li><code>FirstName</code>: 50</li><li><code>LastName</code>: 50</li><li><code>Nickname</code>: 20</li><li><code>ZipCode</code>: 10</li><li><code>Identifier</code>: 2000</li><li><code>Photo</code>: 2000</li></ul>Other standard attributes (<code>Email</code>, <code>MobileNumber</code>, <code>ISOCountryCode</code>, <code>ISOLanguageCode</code>, <code>TimeZone</code>, <code>Title</code>, <code>DateOfBirth</code>) are validated by format/enum, not by length. Note that <code>Email</code> is stored in a column of length 129.<br><br><b>Custom attribute values</b> are limited to 2000 characters.<br><br>Values exceeding these limits are rejected with HTTP 400 (<code>INVALID_PARAMETER</code>); 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.<br><br>Any currently existing attribute values that are not found in the API call are deleted (except for Member attributes).<br>Request body example: <br><pre>[<br>  {"name" : "user.firstname", "value" : "FirstName"},<br>  {"name" : "user.lastname", "value" : "LastName"}<br>]</pre><br><br><b>Maximum character lengths for standard attribute values:</b><ul><li><code>FirstName</code>: 50</li><li><code>LastName</code>: 50</li><li><code>Nickname</code>: 20</li><li><code>ZipCode</code>: 10</li><li><code>Identifier</code>: 2000</li><li><code>Photo</code>: 2000</li></ul>Other standard attributes (<code>Email</code>, <code>MobileNumber</code>, <code>ISOCountryCode</code>, <code>ISOLanguageCode</code>, <code>TimeZone</code>, <code>Title</code>, <code>DateOfBirth</code>) are validated by format/enum, not by length. Note that <code>Email</code> is stored in a column of length 129.<br><br><b>Custom attribute values</b> are limited to 2000 characters.<br><br>Values exceeding these limits are rejected with HTTP 400 (<code>INVALID_PARAMETER</code>); 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.<br><br>Any currently existing attribute values that are not found in the API call are deleted (except for Member attributes).<br>Request body example: <br><pre>[<br>  {"name" : "user.firstname", "value" : "John"},<br>  {"name" : "user.lastname", "value" : "Smith"}<br>]</pre> <br><br>Request body example - erase mobile number:<br>[<br>  <pre>{"name" : "user.MobileNumber", "value" : null}<br>]</pre><br><br><b>Maximum character lengths for standard attribute values:</b><ul><li><code>FirstName</code>: 50</li><li><code>LastName</code>: 50</li><li><code>Nickname</code>: 20</li><li><code>ZipCode</code>: 10</li><li><code>Identifier</code>: 2000</li><li><code>Photo</code>: 2000</li></ul>Other standard attributes (<code>Email</code>, <code>MobileNumber</code>, <code>ISOCountryCode</code>, <code>ISOLanguageCode</code>, <code>TimeZone</code>, <code>Title</code>, <code>DateOfBirth</code>) are validated by format/enum, not by length. Note that <code>Email</code> is stored in a column of length 129.<br><br><b>Custom attribute values</b> are limited to 2000 characters.<br><br>Values exceeding these limits are rejected with HTTP 400 (<code>INVALID_PARAMETER</code>); 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).<br>Request body example: <br><pre>[<br>  {"name" : "user.firstname", "value" : "John"},<br>  {"name" : "user.lastname", "value" : "Smith"}<br>]</pre> <br><br>Request body example - erase mobile number:<br><pre>[<br>  {"name" : "user.MobileNumber", "value" : null}<br>]</pre><br><br><b>Maximum character lengths for standard attribute values:</b><ul><li><code>FirstName</code>: 50</li><li><code>LastName</code>: 50</li><li><code>Nickname</code>: 20</li><li><code>ZipCode</code>: 10</li><li><code>Identifier</code>: 2000</li><li><code>Photo</code>: 2000</li></ul>Other standard attributes (<code>Email</code>, <code>MobileNumber</code>, <code>ISOCountryCode</code>, <code>ISOLanguageCode</code>, <code>TimeZone</code>, <code>Title</code>, <code>DateOfBirth</code>) are validated by format/enum, not by length. Note that <code>Email</code> is stored in a column of length 129.<br><br><b>Custom attribute values</b> are limited to 2000 characters.<br><br>Values exceeding these limits are rejected with HTTP 400 (<code>INVALID_PARAMETER</code>); 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.<br><br>Example:<br><pre>{<br>  "errorActor": "CLIENT",<br>  "errorCode": "NO_SUCH_OBJECT",<br>  "message": "User with email=no.email@example.com does not exist.",<br>  "objectType": "User",<br>  "propertyName": "email",<br>  "propertyValue": "no.email@example.com"<br>}</pre>'
      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).<br>Request body example: <br><pre>[<br>  {"name" : "user.firstname", "value" : "FirstName"},<br>  {"name" : "user.lastname", "value" : "LastName"}<br>]</pre><br><br><b>Maximum character lengths for standard attribute values:</b><ul><li><code>FirstName</code>: 50</li><li><code>LastName</code>: 50</li><li><code>Nickname</code>: 20</li><li><code>ZipCode</code>: 10</li><li><code>Identifier</code>: 2000</li><li><code>Photo</code>: 2000</li></ul>Other standard attributes (<code>Email</code>, <code>MobileNumber</code>, <code>ISOCountryCode</code>, <code>ISOLanguageCode</code>, <code>TimeZone</code>, <code>Title</code>, <code>DateOfBirth</code>) are validated by format/enum, not by length. Note that <code>Email</code> is stored in a column of length 129.<br><br><b>Custom attribute values</b> are limited to 2000 characters.<br><br>Values exceeding these limits are rejected with HTTP 400 (<code>INVALID_PARAMETER</code>); 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.<br>Note: There is also a user replaceProfile method to<br><br>1) change the entire profile of a user and<br><br>2) to delete attribute values if the attribute is not mentioned for the user.<br><br>Request body example: <br><pre>[<br>  {"name" : "user.firstname", "value" : "John"},<br>  {"name" : "user.lastname", "value" : "Smith"},<br>  {"name": "user.ISOCountryCode", "value": "FR"} <br>]</pre>  <br><br>Request body example - erase mobile number:<br>[<br>  <pre>{"name" : "user.MobileNumber", "value" : null}<br>]</pre><br><br><b>Maximum character lengths for standard attribute values:</b><ul><li><code>FirstName</code>: 50</li><li><code>LastName</code>: 50</li><li><code>Nickname</code>: 20</li><li><code>ZipCode</code>: 10</li><li><code>Identifier</code>: 2000</li><li><code>Photo</code>: 2000</li></ul>Other standard attributes (<code>Email</code>, <code>MobileNumber</code>, <code>ISOCountryCode</code>, <code>ISOLanguageCode</code>, <code>TimeZone</code>, <code>Title</code>, <code>DateOfBirth</code>) are validated by format/enum, not by length. Note that <code>Email</code> is stored in a column of length 129.<br><br><b>Custom attribute values</b> are limited to 2000 characters.<br><br>Values exceeding these limits are rejected with HTTP 400 (<code>INVALID_PARAMETER</code>); 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://<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