Skip to main content
POST
/
personalization
/
preview
curl --request POST \
  --url https://api-{dc}.moengage.com/core-services/v1/personalization/preview \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --header 'MOE-APPKEY: <moe-appkey>' \
  --data @- <<EOF
{
  "request_id": "preview_req_12345",
  "personalization_details": {
    "channel": "EMAIL",
    "user_attributes": {
      "Gender": "Female",
      "First Name": "Jane"
    }
  },
  "personalization_content": {
    "payload": {
      "email_html": "<!DOCTYPE html><html><body><p>Hi {{UserAttribute['First Name']}}, your gender is {{UserAttribute['Gender']}}</p></body></html>"
    }
  },
  "user_details": {
    "identifier": "ID",
    "identifier_value": "USER_001"
  }
}
EOF
{
"personalized_content": {
"payload": {
"email_html": "<!DOCTYPE html><html><body><p>Hi Jane, your gender is Female</p></body></html>"
}
}
}

Personalization Support

  • User attributes
  • Event attributes
  • Custom templates
  • Content blocks
  • Content APIs
  • Product sets

Rate Limit

The rate limit is 10,000 requests per minute.

Authorizations

Authorization
string
header
required

Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.

  • Username: Use your MoEngage workspace ID (also known as the App ID). You can find it in the MoEngage dashboard at Settings > Account > APIs > Workspace ID (earlier app id).
  • Password: Use your API Key, which you can find within the Campaign report/Business events/Custom templates/Catalog API/Inform Report tile.

For more information on authentication and getting your credentials, refer here.

Headers

MOE-APPKEY
string
required

This is the Workspace ID of your MoEngage account that must be passed with the request. You can find it in the MoEngage dashboard at Settings > Account > APIs > Workspace ID (earlier app id).

data-compression
boolean

Whether to pass the payload in compressed format.

Set to true to send compressed payload.

Body

application/json

Provide personalization preview request with content and user details.

request_id
string
required

A unique identifier for this personalization preview request.

Example:

"preview_req_12345"

personalization_content
object
required

The content to personalize.

Note: Either payload or custom_template_data must be provided.

personalization_details
object
required

Important:

  • When you pass personalization_details, MoEngage uses those values to personalize content instead of actual user profile data.
  • Attributes must exist in the MoEngage dashboard.
  • If an attribute does not exist and default value is not “MOE_NOT_SEND”, it will appear empty.
  • Event attributes can be used when the same event is used for the campaign.
  • You can use event attributes to personalize content APIs when the same event is used for the campaign.
user_details
object

Information about the user to preview for.

Note: If using user_details, both identifier and identifier_value are mandatory.

Response

Successfully retrieved personalized content preview

Response containing the personalized content.

personalized_content
object

The personalized content with all attributes resolved.