{
"response_id": "98fa8c1b-cb3f-4d29-b30e-d9e74dfb4adc",
"type": "user_analysis",
"data": {
"request_id": "REQUEST_ID"
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "analysis_type - Enum doesnt allow value: eventsdfg, allowed values: [events, users, session, aggregation, aggregation_distribution, total_events_per_user, attribute_aggregation_per_user] : 'eventsdfg'",
"doc_url": "https://www.moengage.com/docs/api/analytics-queries/"
},
"response_id": "01306019-419a-4728-ad82-9d522464f33a"
}{
"code": "ER001",
"target": "Authentication Invalid",
"message": "Auth validation failed."
}{
"code": "ER007",
"target": "Authentication Invalid",
"message": "Auth validation failed."
}{
"error": {
"code": "QUOTA_EXCEEDED",
"message": "Your workspace has reached its monthly Fair Usage Policy limit for analytics usage. Please contact your Customer Success Manager to expand your quota.",
"doc_url": "https://www.moengage.com/docs/api/analytics-queries/"
},
"response_id": "714b4690eba1deb53b065d92277e2910"
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred while processing the request.",
"doc_url": "https://www.moengage.com/docs/api/analytics-queries/"
},
"response_id": "dcc4fd00-2980-41a5-94b3-ad4844ae3d72"
}Registers an asynchronous User Property Analysis (UPA) query and returns a request_id. User Property Analysis computes counts, distinct-value counts, distributions, and aggregations over user attributes for a cohort of users.
Use the request_id with Get Query Status to poll for completion, then Get Query Results to fetch the resolved series.
{
"response_id": "98fa8c1b-cb3f-4d29-b30e-d9e74dfb4adc",
"type": "user_analysis",
"data": {
"request_id": "REQUEST_ID"
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "analysis_type - Enum doesnt allow value: eventsdfg, allowed values: [events, users, session, aggregation, aggregation_distribution, total_events_per_user, attribute_aggregation_per_user] : 'eventsdfg'",
"doc_url": "https://www.moengage.com/docs/api/analytics-queries/"
},
"response_id": "01306019-419a-4728-ad82-9d522464f33a"
}{
"code": "ER001",
"target": "Authentication Invalid",
"message": "Auth validation failed."
}{
"code": "ER007",
"target": "Authentication Invalid",
"message": "Auth validation failed."
}{
"error": {
"code": "QUOTA_EXCEEDED",
"message": "Your workspace has reached its monthly Fair Usage Policy limit for analytics usage. Please contact your Customer Success Manager to expand your quota.",
"doc_url": "https://www.moengage.com/docs/api/analytics-queries/"
},
"response_id": "714b4690eba1deb53b065d92277e2910"
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred while processing the request.",
"doc_url": "https://www.moengage.com/docs/api/analytics-queries/"
},
"response_id": "dcc4fd00-2980-41a5-94b3-ad4844ae3d72"
}Rate Limit
The rate limits are at the workspace level. A maximum of 5 requests per second, 15 requests per minute, and 100 requests per hour are allowed per workspace.Authorizations
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). Find it in the MoEngage dashboard at Settings > Account > API keys.
- Password: Use an API key from Settings > Account > API keys.
Refer to API Key Dashboard for details on creating and managing API keys.
Body
Request body for registering a User Property Analysis (UPA) query.
Payload schema version.
"2.0"
The analysis type. Must be user_analysis for this endpoint.
user_analysis The user-property computation to run — total_count (all users in scope), distinct_count (distinct values of the attribute), distribution (how users are spread across the attribute's values, using automatic or custom buckets), aggregation (sum, minimum, maximum, average, median, or percentile), or email_domain_analysis.
total_count, distinct_count, distribution, aggregation, email_domain_analysis "distribution"
The user attributes to analyze. Include 1 to 5 properties. When more than one is provided, results are cross-tabulated across them.
1 - 5 elementsShow child attributes
Show child attributes
Segments used to scope the analysis to a subset of users. Include up to 5 segments. To analyze all users, pass a single segment with the All Users custom segment.
5Show child attributes
Show child attributes
Distribution configuration. Custom distributions apply to numerical attributes only. Use type: auto for automatic bucketing.
Show child attributes
Show child attributes
{ "type": "custom", "from": 0, "to": 10, "interval": 1 }
The time window the analysis runs over.
Show child attributes
Show child attributes
Time bucket for the series — d (day), w (week), m (month), y (year), or e (entire range).
d, w, m, y, e "e"
Visual representation of the result.
line, area, bar, column, euler, pie "column"
Whether metrics are returned as absolute counts (number) or as percentages (percentage).
number, percentage "number"
Attributes to break the result down by. Include up to 10.
10Show child attributes
Show child attributes
[ { "attr_type": "user", "data_type": "string", "encrypted": false, "name": "moe_ip_country", "pii": false, "readable_name": "Last Known Country" } ]
Sort order applied to the result series.
ascending, descending Response
Query registered. Poll status and fetch results with data.request_id.
Acknowledgement that a query was registered. Use data.request_id to poll status and fetch results.