Reports - User Profile
Reports
The reports controller provides aggregate statistics over user profiles.
12.1 Event Data Statistics
Get attendance and registration statistics grouped by dimensions.
POST /api/v1/reports/eventDataStats
Content-Type: application/json
Authorization: Bearer <KS>
This endpoint requires ANALYTICS_BASE or EP_USER_ANALYTICS permission (different from the ADMIN_BASE required by other endpoints).
{
"filter": {
"appGuidIn": ["app-guid-1", "app-guid-2"],
"attendanceStatusIn": ["attended", "participated"],
"regOriginIn": ["registration", "invite"]
},
"dimensions": ["attendanceStatus", "regOrigin"]
}
| Field | Type | Required | Description |
|---|---|---|---|
filter.appGuidIn | string[] | Yes | One or more app GUIDs (at least one required) |
filter.attendanceStatusIn | string[] | No | Filter by attendance statuses |
filter.regOriginIn | string[] | No | Filter by registration origins |
dimensions | string[] | Yes | Grouping dimensions (at least one): attendanceStatus, regOrigin, or both |
Response:
{
"results": [
{
"appGuid": "app-guid-1",
"dimensions": {
"attendanceStatus": "attended",
"regOrigin": "registration"
},
"count": 45
},
{
"appGuid": "app-guid-1",
"dimensions": {
"attendanceStatus": "participated",
"regOrigin": "invite"
},
"count": 23
}
],
"sum": 68
}
# Get attendance breakdown for an event
curl -X POST "$KALTURA_USER_PROFILE_URL/reports/eventDataStats" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{
\"filter\": {
\"appGuidIn\": [\"$APP_GUID\"]
},
\"dimensions\": [\"attendanceStatus\"]
}"
12.2 First Attendance Per App
Get counts of users who reached "attended" status or higher, grouped by app. Uses the firstAttendedStatusTime timestamp.
POST /api/v1/user-profile/firstAttendanceStatusPerApp
Content-Type: application/json
Authorization: Bearer <KS>
{
"fromDate": "2025-01-01T00:00:00Z",
"toDate": "2025-12-31T23:59:59Z"
}
| Field | Type | Required | Description |
|---|---|---|---|
fromDate | string | No | ISO 8601 start date (filters firstAttendedStatusTime) |
toDate | string | No | ISO 8601 end date |
Response: Object keyed by appGuid with attendance counts:
{
"app-guid-1": 145,
"app-guid-2": 82
}
curl -X POST "$KALTURA_USER_PROFILE_URL/user-profile/firstAttendanceStatusPerApp" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{
"fromDate": "2025-01-01T00:00:00Z",
"toDate": "2025-12-31T23:59:59Z"
}'