openapi: 3.2.0
info:
title: Mapp Engage public Membership 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: Membership
paths:
/membership/create:
get:
tags:
- Membership
summary: Create a membership
description: Subscribes a contact to a group, creating a new membership. Unlike normal subscription, a notification is not sent.
operationId: CreateMembership
parameters:
- name: userId
in: query
description: ID of the user.
required: true
schema:
type: integer
format: int64
- name: groupId
in: query
description: ID of the group.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: 'Example response:
{
"userId": 18076325029,
"groupId": 1800116178,
"attributes": []
}'
content:
application/json:
schema:
$ref: '#/components/schemas/Membership'
application/xml:
schema:
$ref: '#/components/schemas/Membership'
'400':
description: userId and groupId are mandatory, but are missing or incorrect. / User with id does not exist. / Group with id does not exist.
'404':
description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}'
/membership/delete:
delete:
tags:
- Membership
summary: Delete a membership
description: Deletes an existing membership (meaning the user is unsubscribed from the group). This call differs from the unsubscribe method in that the user is not notified about the unsubscription
operationId: DeleteMembership
parameters:
- name: userId
in: query
description: ID of the user.
required: true
schema:
type: integer
format: int64
- name: groupId
in: query
description: ID of the group.
required: true
schema:
type: integer
format: int64
responses:
'204':
description: 'Example response:
{
"userId": 18076325029,
"groupId": 1800116178,
"attributes": []
}'
'400':
description: userId and groupId are mandatory, but are missing or incorrect. / User with id does not exist. / Group with id does not exist.
'404':
description: 'Error response: {
"errorActor": "CLIENT",
"errorCode": "INVALID_REQUEST",
"message": "Not Found"
}'
/membership/findAllByEmail:
get:
tags:
- Membership
summary: Find all memberships for a user by email
description: Returns the membership information of a user identified by email.
operationId: findAllByEmail
parameters:
- name: email
in: query
description: Email of the user
required: true
schema:
type: string
responses:
'200':
description: 'Example response:
[{
"userId": 18061450504,
"groupId": 1800116178,
"attributes": [] }, {
"userId": 18061450504,
"groupId": 1800138927,
"attributes": []
}]'
content:
application/json:
schema:
$ref: '#/components/schemas/Membership'
application/xml:
schema:
$ref: '#/components/schemas/Membership'
'400':
description: email is mandatory, but is missing or incorrect. / User with email does not exist.
/membership/findAll:
get:
tags:
- Membership
summary: Find all memberships for a user
description: Returns a list of membership objects, one membership object for each group in which the user is a member.
operationId: findAll
parameters:
- name: userId
in: query
description: ID of the user
required: true
schema:
type: integer
format: int64
responses:
'200':
description: 'Example response:
[{
"userId": 18061450504,
"groupId": 1800116178,
"attributes": [] }, {
"userId": 18061450504,
"groupId": 1800138927,
"attributes": []
}]'
content:
application/json:
schema:
$ref: '#/components/schemas/Membership'
application/xml:
schema:
$ref: '#/components/schemas/Membership'
'400':
description: userId is mandatory, but is missing or incorrect. / User with id does not exist.
'404':
description: Not found
/membership/getByEmail:
get:
tags:
- Membership
summary: Get a membership by email
description: Retrieves the membership information of a contact identified by email in a group specified by groupId.
operationId: getByEmail
parameters:
- name: email
in: query
description: Email of the user.
required: true
schema:
type: string
- name: groupId
in: query
description: ID of the group.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: 'Example response:
{
"userId": 18223800009,
"groupId": 1800190005,
"attributes": [{
"name": "member.bounceCounter",
"value": "0"
}, {
"name": "member.type",
"value": "normal"
}, {
"name": "member.readMode",
"value": "mail"
}, {
"name": "member.creationDate",
"value": "2015-07-21 16:10:30.0"
}, {
"name": "member.bounced",
"value": "false"
}, {
"name": "member.role",
"value": "member"
}, {
"name": "member.messageCounter",
"value": "0"
}, {
"name": "member.systemWideDeactivated",
"value": "false"
}]
}'
content:
application/json:
schema:
$ref: '#/components/schemas/Membership'
application/xml:
schema:
$ref: '#/components/schemas/Membership'
'400':
description: 'Bad email or group, for example:
{
"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"
}{
"errorActor": "CLIENT",
"errorCode": "NO_SUCH_OBJECT",
"message": "Membership with membership=userId:18152367016/groupId:2400792595 does not exist.",
"objectType": "Membership",
"propertyName": "membership",
"propertyValue": "userId:18152367016/groupId:2400792595"
}'
/membership/get:
get:
tags:
- Membership
summary: Get a membership
description: Retrieves the membership information of a user identified by the userId in a group identified by groupId.
operationId: GetMembership
parameters:
- name: userId
in: query
description: ID of the user.
required: true
schema:
type: integer
format: int64
- name: groupId
in: query
description: ID of the group.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: 'Example response: [{
"name" : "attribute1",
"value" : "0001"
},
{
"name" : "attribute2",
"value" : "0002"
}]'
operationId: replaceAttributes
parameters:
- name: userId
in: query
description: ID of the user
required: true
schema:
type: integer
format: int64
- name: groupId
in: query
description: ID of the group
required: true
schema:
type: integer
format: int64
responses:
'200':
description: ''
'400':
description: userId and groupId are mandatory, but are missing or incorrect.
'404':
description: 'Error response: {https:///api/rest/v19/membership/subscribeByEmail?email=j.mcexample@example.com&groupId=12345978&subscriptionMode=OPT_IN
operationId: subscribeByEmail
parameters:
- name: email
in: query
description: 'Email of the user.[' operationId: updateAttributes parameters: - name: userId in: query description: ID of the user required: true schema: type: integer format: int64 - name: groupId in: query description: ID of the group required: true schema: type: integer format: int64 responses: '200': description: '' '400': description: userId and groupId are mandatory, but are missing or incorrect. '404': description: Not found 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://
{"name":"car","value":"BMW"},
{"name":"mascot","value":"cat"},
{"name":"age","value":"18"}
]