Skip to main content
View as Markdown

Track Messages - Messaging

Track Messages​

8.1 List Bulk Messages​

curl -X POST "$KALTURA_MESSAGING_URL/message/list" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"appGuidIn": ["'$APP_GUID'"],
"statusIn": ["completed"]
},
"pager": {"offset": 0, "limit": 25}
}'

Filter Fields​

FieldTypeDescription
idInstring[]Filter by bulk message IDs
bulkIdInstring[]Filter by external bulk IDs
templateIdInstring[]Filter by template IDs
appGuidInstring[]Filter by App Registry GUIDs
sessionInstring[]Filter by session labels
statusInstring[]Filter by bulk status (sending, completed, failed)
receiverTypeInstring[]Filter by receiver type (user, group)
typeInstring[]Filter by message type (email)
groupIdsstring[]Filter by group IDs
userIdsstring[]Filter by user IDs
createdAtGreaterThanOrEqualstringISO 8601 minimum creation date
createdAtLessThanOrEqualstringISO 8601 maximum creation date
updatedAtGreaterThanOrEqualstringISO 8601 minimum update date
updatedAtLessThanOrEqualstringISO 8601 maximum update date

Response: {objects: [...], totalCount: N}

8.2 List Messages Grouped by Session​

Group bulk messages by their session label for campaign-level views:

curl -X POST "$KALTURA_MESSAGING_URL/message/listGroupedBySession" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"appGuidIn": ["'$APP_GUID'"]
},
"pager": {"offset": 0, "limit": 25}
}'

Filter Fields​

FieldTypeDescription
sessionInstring[]Filter by session labels
templateIdInstring[]Filter by template IDs
appGuidInstring[]Filter by app GUIDs
statusInstring[]Filter by status
adminTagsstringFilter by admin tags substring
excludeAdminTagsstringExclude by admin tags
templateAdminTagsstring[]Filter by template admin tags
excludeTemplateAdminTagsstring[]Exclude by template admin tags
createdAtGreaterThanOrEqualstringISO 8601 min date
updatedAtGreaterThanOrEqualstringISO 8601 min date

8.3 Message Statistics​

Get delivery statistics for a specific bulk message or session:

# Stats by bulk ID
curl -X POST "$KALTURA_MESSAGING_URL/message/stats" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{\"bulkId\": \"$BULK_ID\"}"

# Stats by session
curl -X POST "$KALTURA_MESSAGING_URL/message/stats" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{\"session\": \"invitation-batch-2025-q4\"}"
FieldTypeDescription
bulkIdstringBulk message external ID
sessionstringSession label

The response contains uppercase status keys with counts (e.g., {"DELIVERED": 450, "BOUNCE": 3, "OPEN": 320}).

8.4 Discrete Message Details​

Track individual recipient delivery status:

curl -X POST "$KALTURA_MESSAGING_URL/message/listDiscreteAggregateMessages" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"sessionIn": ["invitation-batch-2025-q4"],
"statusIn": ["bounce", "error"]
},
"pager": {"offset": 0, "limit": 50}
}'

Filter Fields​

FieldTypeDescription
appGuidInstring[]Filter by app GUIDs
userIdstringFilter by specific user ID
sessionInstring[]Filter by session labels
statusInstring[]Filter by discrete status