curl --request POST \
--url https://api-{dc}.moengage.com/v5/business-events/search \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"filters": {
"names": [
"price_drop",
"cart_abandoned"
]
},
"limit": 20
}
'{
"response_id": "5f3e2a1b9c8d",
"type": "business-events",
"data": [
{
"id": "67a2c4f18d3b5e0a9c1f4e73",
"name": "price_drop",
"attributes": [
{
"name": "product_id",
"data_type": "string"
},
{
"name": "new_price",
"data_type": "number"
}
],
"campaign_count": 50000,
"trigger_count": 12840,
"created_by": "[email protected]",
"last_triggered_at": "2026-07-19T14:03:22Z",
"created_at": "2026-05-01T09:12:00Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "eyJsYXN0X2lkIjoiNjdhMmM0ZjE4ZDNiNWUwYTljMWY0ZTc0In0="
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "Use either 'names' or 'ids', not both.",
"target": "filters.ids",
"details": [
{
"code": "INVALID_PARAMETER_COMBINATION",
"target": "filters.ids",
"message": "The 'ids' filter cannot be combined with 'names'."
}
]
},
"response_id": "5f3e2a1b9c8d"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid authentication credentials.",
"target": "Authorization"
},
"response_id": "5f3e2a1b9c8d"
}{
"error": {
"code": "FORBIDDEN",
"message": "This API key does not have the scope required to read business events.",
"target": "Authorization"
},
"response_id": "5f3e2a1b9c8d"
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Workspace rate limit exceeded. Retry after 60 seconds."
},
"response_id": "5f3e2a1b9c8d"
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred while processing the request. Retry the request, and quote `response_id` if you contact MoEngage Support."
},
"response_id": "5f3e2a1b9c8d"
}Search Business Events (V5)
Returns all business events in the workspace, or the subset matching a filter. Provide either names or ids inside filters (not both). Omit the body (or filters) to list everything (paginated).
Use this endpoint to look up several events in one call. To page through every event or to fetch exactly one, List Business Events does the same job with a GET. Both return the same object and the same pagination.
This endpoint uses POST so that multi-valued filters travel as JSON arrays — a name may contain any character (for example, a comma), which a comma-delimited query string could not represent unambiguously.
curl --request POST \
--url https://api-{dc}.moengage.com/v5/business-events/search \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"filters": {
"names": [
"price_drop",
"cart_abandoned"
]
},
"limit": 20
}
'{
"response_id": "5f3e2a1b9c8d",
"type": "business-events",
"data": [
{
"id": "67a2c4f18d3b5e0a9c1f4e73",
"name": "price_drop",
"attributes": [
{
"name": "product_id",
"data_type": "string"
},
{
"name": "new_price",
"data_type": "number"
}
],
"campaign_count": 50000,
"trigger_count": 12840,
"created_by": "[email protected]",
"last_triggered_at": "2026-07-19T14:03:22Z",
"created_at": "2026-05-01T09:12:00Z"
}
],
"pagination": {
"has_more": true,
"next_cursor": "eyJsYXN0X2lkIjoiNjdhMmM0ZjE4ZDNiNWUwYTljMWY0ZTc0In0="
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "Use either 'names' or 'ids', not both.",
"target": "filters.ids",
"details": [
{
"code": "INVALID_PARAMETER_COMBINATION",
"target": "filters.ids",
"message": "The 'ids' filter cannot be combined with 'names'."
}
]
},
"response_id": "5f3e2a1b9c8d"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid authentication credentials.",
"target": "Authorization"
},
"response_id": "5f3e2a1b9c8d"
}{
"error": {
"code": "FORBIDDEN",
"message": "This API key does not have the scope required to read business events.",
"target": "Authorization"
},
"response_id": "5f3e2a1b9c8d"
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Workspace rate limit exceeded. Retry after 60 seconds."
},
"response_id": "5f3e2a1b9c8d"
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred while processing the request. Retry the request, and quote `response_id` if you contact MoEngage Support."
},
"response_id": "5f3e2a1b9c8d"
}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.
Headers
Client-supplied trace ID (UUID v4). Echoed back in the X-MOE-Request-Id response header and returned unchanged as response_id in the body. When you omit this header, MoEngage generates a 12-character hexadecimal identifier instead. Quote it when contacting MoEngage Support.
On Trigger Business Event (V5), the body field moe_request_id takes precedence: when you send both, response_id echoes moe_request_id, and this header is returned only in the X-MOE-Request-Id response header.
Body
Filter and pagination for the search. Provide either names or ids inside filters (not both); omit filters to return everything (paginated).
Response
Business event list
Unique identifier for this response. Echoes the X-MOE-Request-Id header you sent, returned unchanged. When you omit it, MoEngage generates a 12-character hexadecimal identifier. Quote it when contacting MoEngage Support.
"5f3e2a1b9c8d"
The resource type contained in data. Always business-events for this endpoint.
business-events The business events matching your filters, up to limit per page.
Show child attributes
Show child attributes
Cursor pagination state for this page of results.
Show child attributes
Show child attributes