Skip to main content
POST

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 Personalize tile.

Note: After you generate and save the Personalize API Key (SECRET KEY), DO NOT generate a new key unless there is a security breach. After you generate a different key and save it, API calls using the older key won't work.

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).

Example:

"Workspace ID"

Body

application/json

To target users on contextual signals such as UTM parameters, referrer, or any custom in-session attribute configured for your workspace, pass the parameter as a top-level field in the request body using the parameter's own name as the key.

For example, if you have configured an in-session attribute with the query parameter name utm_medium and want to target users who arrived from an email campaign:

You can pass any number of these custom keys alongside the documented fields below.

identifiers
object
experience_key
string[]

This field uniquely identifies each server-side experience created using MoEngage Personalize. You can pass multiple values in a single request and receive the personalized content defined for each experience in the response.

To fetch the payload for a single experience: experience_key: ["experience-1"]

To fetch payload for multiple experiences in a single call: experience_key: ["experience-1", "experience-2"]

Limit: A maximum of 25 experience keys can be passed per request. If more than 25 are provided, the API returns the first 25 experiences.

If no experience_key is specified, API will return:

  • all experiences for the specified customer_id OR
  • all experiences configured for all users if customer_id is not part of the request

Note: Keys must be obtained from the Fetch Experience Metadata endpoint. An unrecognized key, or a key that the user does not match, returns a 200 response with an empty experiences object — not an error.

Maximum array length: 25
DAY_OF_THE_WEEK
enum<string>

This field must contain the day of the week for evaluating IN-session attribute-based experiences.

Accepted values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday (case-sensitive).

Example: DAY_OF_THE_WEEK: "Sunday"

Available options:
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
TIME_OF_THE_DAY
enum<string>

This field must contain the current hour in 24-hour format (UTC) for evaluating IN-session attribute-based experiences. Pass as a zero-padded two-digit string ("00""23").

Examples: midnight = "00", 7 AM = "07", 2 PM = "14", 7 PM = "19", 11 PM = "23".

Available options:
00,
01,
02,
03,
04,
05,
06,
07,
08,
09,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
USER_IP_ADDRESS
string

This field must contain the user’s IP address to fetch experiences for audiences segmented basis geo-location.

USER_AGENT
string

This field must contain the USER-AGENT HTTP header. This is useful to delivering experiences personalized based on in-session attributes like Device Type.

Response

Success This response is returned when the request is submitted to MoEngage.

Note: A 200 response with an empty experiences object ({}) means the identified user did not match any audience for the requested experience(s). This is not an error — render your default or fallback UI in this case.

experiences
object

Map of experience_key → experience_object. Returns an empty object {} when no experiences match the user.