This API receives data on active personalization experiences. You can fetch data for one or more server-side experiences by using the experience_key field. MoEngage will evaluate targeting rules and in-session attributes automatically and return the correct variation for the user. Typically, you would make this call as part of your larger page and content rendering pipeline.
Documentation Index
Fetch the complete documentation index at: https://moengage-getz-tagging-workspace-status.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.
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.
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).
"Workspace ID"
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:
{
"identifiers": { "customer_id": "user_8821" },
"experience_key": ["email-landing-banner"],
"utm_medium": "email"
}You can pass any number of these custom keys alongside the documented fields below.
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:
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.
25This 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"
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday 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".
00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 This field must contain the user’s IP address to fetch experiences for audiences segmented basis geo-location.
This field must contain the USER-AGENT HTTP header. This is useful to delivering experiences personalized based on in-session attributes like Device Type.
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.
Map of experience_key → experience_object. Returns an empty object {} when no experiences match the user.