--- title: "API Endpoints" slug: "api-endpoints" description: "Mapp Connect API: endpoints, request formats and JSON examples for users, messages, transactions, product catalog, coupons and Related Data." status: "update" updated: 2026-10-20T14:17:51Z published: 2026-10-20T14:17:51Z canonical: "docs.mapp.com/api-endpoints" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.mapp.com/llms.txt > Use this file to discover all available pages before exploring further. # API Endpoints ## Available API Methods Mapp Connect is a simple async API with methods to: | GET | List Mapp Engage groups, prepared emails, push and SMS messages, and mobile App ID. | | --- | --- | | POST | Add or update data for: - **User:** - Create a contact in Mapp Engage (non-existing contacts require a group ID in the payload to be subscribed in the system). - Update an existing contact (group ID is not required), unsubscribe, or remove a contact. - **Email:** - Send a prepared email message to the contact with parameters. - Send a prepared email message to a group (without parameters). - **SMS:** Send a prepared SMS message to the contact (mobile number or email field is required) with parameters. - **Push:** Send a prepared push message to the contact (mobile number or email field is required) with parameters. - **Transaction:** Add or delete order details to contact and send an order message. - **Wishlist:** Add or delete a Wishlist item from the contact profile. - **Abandoned Cart:** Add or delete abandoned cart products from the contact profile. - **Automation:** Trigger whiteboard automation from a third-party app (see [Set Up a Mapp Connect Automation Event](/v1/docs/set-up-a-mapp-connect-automation-event)). - **Product Catalog:** Create, update, and/or delete a product catalog item in Mapp Engage. - **Coupon:** Create a coupon. - **Batch import**: Send up to 1000 requests at once. | ## GET | Connect | `/integration/{integrationId}/connect` | | --- | --- | | Groups | `/integration/{integrationId}/group` | | List of Email prepared Messages | `/integration/{integrationId}/message` | | List of Mobile Apps | `/integration/{integrationId}/mobile-app` | | List of Push prepared Messages | `/integration/{integrationId}/message/push` | | List of SMS prepared Messages | `/integration/{integrationId}/message/sms` | ## POST ### Call Template POST /integration//event{?subtype=} > [!NOTE] > The request body can contain any JSON object. Response: HTTP status code ### Examples > Please note that the names used in calls need to be the same as the names used in your mapping. **Add a user and subscribe to the group** POST /integration//event?subtype=user Example of sent event: ```json {    "email":"user@mapp.com",    "group":"2324333335",    "first":"firstval",    "second":"secondval"   } ``` Response: HTTP status code **Remove a user** POST /integration//event?subtype=user FLAG: 'delete' Example of sent event: ```json {    "email":"user@mapp.com",    "group":"2324333335",    "delete":"true"           } ``` Response: HTTP status code **Send a prepared SMS message to a user with parameters** POST /integration//event?subtype=sms *MessageId* is the ID of the prepared message. You can use 'email', 'recipientMobileNumber' or 'recipientId' as an identifier. Example of sent event: ```json {   "recipientMobileNumber":"+48666777888",   "messageId":"2324333335"   } ``` Response: HTTP status code **Send prepared Push message to a user with parameters** POST /integration//event?subtype=push 'pushMessageId' is the ID of the push message template (not the campaign), 'mobileAppId' refers to the app that should be used, and 'email' is used as a user identifier. Example of sent event: ```json {   "email":"john.smith@xx.xx",   "pushMessageId":"1234",   "mobileAppId":"5678",   "param1":"param 1 value"       } ``` Response: HTTP status code **Send a single message with parameters** POST /integration//event?subtype=email *MessageId* is the ID of the prepared message. Example of sent event: ```json {   "email":"user@mapp.com",     "messageId":"2324333335",     "first":"firstval",    "second":"secondval"                              } ``` Response: HTTP status code **Send a single message to a user with "externalTransactionFormula"** POST /integration//event?subtype=email Request body can contain any JSON object. *MessageId* it's an ID of the prepared message. Example of sent event: ```json {             "email":"user@mapp.com",           "messageId":"2324333335",   "externalTransactionFormula":"myUniqueValue......" } ``` Response: HTTP status code For more information, see: - [Transactional Messages](/v1/docs/transactional-messages) - [message sendTransactional](/v1-api/apidocs/send-a-transactional-message) **Send a group message** POST /integration//event?subtype=email *MessageId* it's an ID of the prepared message. Example of sent event: ```json {      "group":"12",    "messageId":"2324333335"     } ``` **Save transaction details in the Transactions eCommerce table** This call stores transaction (order) details in the Transactions eCommerce table and, optionally, sends a transactional email. POST /integration//event?subtype=transaction *MessageId* is the ID of the prepared message. Example of sent event: ```json {  "email": "test.example@mapp.com",  "messageId": "9634",  "items": [ {  "sku": "JB-129",  "name": "George-H",  "price": "15",  "qty_ordered": "1" } ],  "group": "8262",  "orderId": "06032023",  "transaction_date": "2020-04-28T12:30:08.537Z",  "currency": "GBP" } ``` > [!NOTE] > The "messageId" parameter is optional > > - If provided, the transaction is saved/updated, and a message with the provided messageId is sent to the given email address. > - If not provided, only the transaction is saved/updated. **Remove a transaction from the Transactions eCommerce table** This call removes the transaction from the eCommerce table. POST /integration//event?subtype=transaction ```json {   "orderId": "12345",   "email": "test@test.com",   "delete": "true" } ``` **Product Catalog** This call adds/deletes a new product to/from the Product Catalog. POST /integration//event?subtype=product Example of sent event: **Add** ```json { "productSKU": "aaa-bbb-ccc", "productName": "someName", "productPrice": "123", "productURL": "http://somedomain.com" } ``` **Delete** ```json { "productSKU": "aaa-bbb-ccc", "delete": "true" } ``` **Create/Update** ```json { "productSKU": "aaa-bbb-ccc", "productName": "someName", "productPrice": "56", "productURL": "http://somedomain2.com", "stockTotal": "88", "customAttribute1" : "customAttribute1value", "customAttribute2" : "customAttribute2value", "customAttribute3" : "customAttribute3value", "customAttribute4" : "customAttribute4value", "customAttribute5" : "customAttribute5value" } ``` **Abandoned Cart / Wishlist/ Browse** Example "default" JSON payloads for "Generic" integration type: **Add or Update** ```json {   "email": "test.example@mapp.com",   "sku": "0602-2023-123",   "createdAt": "2024-02-10T17:25:43.511Z",   "price": "25",   "size": "M" } ``` **Note:** - The `createdAt` field also accepts timestamp values in format `“1741867804875”`. - If the contact doesn't exist in Mapp Engage, the data will not be saved. **Delete** ```json {   "sku": "0602-2023-123",   "email": "test@mapp.com",     "delete": "true" } ``` If you want to use user identifiers other than email, you can use userId or mobileNumber instead. **Add a single coupon code** POST /integration//event?subtype=coupon Example of sent event: ```json {   "listName":"campaign1",   "value":"summer1jaosajsoas" } ``` If the list does not exist, it is created. **Batch import: send multiple requests at once** POST /integration//event/batch?subtype= The maximum payload of a batch request is 1000 events. If the payload exceeds 1000, the entire payload is discarded and throws an exception (400). The body needs to be sent as an array, for example: ```json [  {    "email":"john@mapp.com",    "group":"10144",    "nosto_segments":"High Value Customers area New York"  },  {    "email":"mary@gmail.com",    "group":"10144",    "nosto_segments":"High Value Customers area New York"  } ] ``` **Recommended product** **Add** ```json { "email": "test.example@mapp.com", "sku": "0602-2023-123", "accuracy": "12", "model": "25" } ``` **Delete** ```json { "sku": "0602-2023-123", "email": "test@mapp.com", "delete": "true"} ``` **Related Data: Add** Mandatory parameters: datasetName / key / importMode / attributes - **Add** Example of sent event: ```json { "datasetName": "testrdlistname", "key" : "123", "importMode":"add", "attributes" : {   "description" : "some description",   "price" : "567" } } ``` - **Bulk add** ```json [  { "datasetName": "testrdlistname",   "key" : "123", "importMode":"add", "attributes" : {   "description" : "some description",   "price" : "567" } } ] ``` This can be done with a bulk import using a CSV file. An example of the contents would be: ```plaintext "datasetName","key","importMode","attributes" "testrdlistname","123","add","{'description':'some description','price':'567'}" ``` **Related Data: Update** Mandatory parameters: datasetName / key / importMode / attributes Optional parameter: filter - **Update** Example of sent event: ```json { "datasetName": "testrdlistname", "key" : "123", "importMode":"update", "attributes" : {   "description" : "change description",   "price" : "890" }, "filter" : {   "description" : "lorem ipsum" } } ``` - **Bulk update** ```json [    {        "datasetName": "testrdlistname",        "key": "123",        "importMode": "update",        "attributes": {            "description": "some description",            "price": "567"        }    } ] ``` This can be done with a bulk import using a CSV file. An example of the contents would be: ```plaintext "datasetName","key","importMode","attributes","filter" "testrdlistname","123","update","{'description':'change description','price':'890'}","{'description':'lorem ipsum'}" ``` **Related Data: Delete** Mandatory parameters: datasetName / key / importMode Optional parameter: filter - **Delete** Example of sent event: ```json { "datasetName": "testrdlistname", "key" : "123", "importMode":"delete", "filter" : {   "description" : "lorem ipsum" } } ``` - **Bulk delete** ```json [    {        "datasetName": "testrdlistname",        "key": "123",        "importMode": "delete",        "filter": {            "description": "lorem ipsum"        }    } ] ``` This can be done with a bulk import using a CSV file. An example of the contents would be: ```plaintext "datasetName","key","importMode","filter" "testrdlistname","123","delete","{'description':'lorem ipsum'}" ``` ## Postman Sandbox This Postman collection can be used to test your authentication credentials and all endpoints. To use it, create a free [Postman](https://www.postman.com/) account online or in their free app and upload the collection. > [!TIP] > DOWNLOAD THE POSTMAN SANDBOX COLLECTION > > [](https://cdn.document360.io/554b9b98-6720-4d8b-9919-c7b203d72648/Images/Documentation/Mapp Connect.postman_collection.json)Mapp Connect.postman_collection67.14 KB[](https://cdn.document360.io/554b9b98-6720-4d8b-9919-c7b203d72648/Images/Documentation/Mapp Connect.postman_collection.json)