Skip to main content
POST
/
category-subscription
/
user-preferences
Bulk Update Subscription Preferences
curl --request POST \
  --url https://api-{dc}.moengage.com/v1/category-subscription/user-preferences \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: <content-type>' \
  --header 'MOE-APPKEY: <moe-appkey>' \
  --data '
{
  "channel": "email",
  "user_preferences": [
    {
      "customer_id": "john@example.com",
      "categories": {
        "Promotional": false,
        "Transactional": false,
        "Special Offers": true
      },
      "unsubscribe_all": false
    },
    {
      "customer_id": "mike@example.com",
      "categories": {
        "Transactional": true,
        "Promotional": false,
        "Special Offers": true
      },
      "unsubscribe_all": false
    },
    {
      "customer_id": "doe@example.com",
      "categories": {
        "Product Updates": true,
        "New arrivals": false,
        "Recommendations": true
      },
      "unsubscribe_all": false
    }
  ]
}
'
{ "message": "Your request has been processed" }

Rate Limit

The rate limit is 100 RPM and 360k per day.

FAQs

What is the batch size for the bulk update? The maximum batch size is 50.

Authorizations

Authorization
string
header
required

This authentication parameter, used for access control, must be passed along with the request. To generate the authentication header, refer to Authentication.

It uses Workspace ID as username and Data API Key as password.

Headers

MOE-APPKEY
string
required

This is your MoEngage account's APP ID that has to be passed along with the request. You can find your MoEngage Workspace ID at Settings -> Account -> APIs -> Workspace ID (earlier app id).

Content-Type
string
default:application/json
required

Set the Content-Type header to application/json for using the Bulk Update Preferences API.

Body

application/json

A list of preference updates for multiple users.

channel
enum<string>
required

This field contains the name of the channel. Allowed values - "channel": "email"

Available options:
email
Example:

"email"

user_preferences
object[]
required

A list of user preference objects to update. Maximum 50 per request.

Maximum array length: 50

Response

Your request has been processed.

message
string

A brief description of the request status in the case of success.