Skip to main content
View as Markdown

Reports Microservice - Analytics

Reports Microservice​

A separate async service for generating CSV reports that require cross-service data aggregation (registration data, C&C engagement, enriched analytics).

Base URL: https://reports.{region}.ovp.kaltura.com (e.g., reports.nvp1.ovp.kaltura.com for US production) Auth: Authorization: Bearer <KS>

Two-Step Generate/Serve Pattern​

# Step 1: Generate — returns a sessionId
SESSION_ID=$(curl -s -X POST "$KALTURA_REPORTS_URL/api/v1/report/generate" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{
"reportName": "registration",
"reportParameters": {"appGuid": "'$APP_GUID'"}
}' | jq -r '.sessionId')

echo "Session: $SESSION_ID"

# Step 2: Poll until ready
while true; do
STATUS=$(curl -s -X POST "$KALTURA_REPORTS_URL/api/v1/report/serve" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{"sessionId": "'$SESSION_ID'", "statusOnly": true}' \
| jq -r '.status')
echo "Status: $STATUS"
[ "$STATUS" = "completed" ] && break
sleep 2
done

# Step 3: Download CSV
curl -s -X POST "$KALTURA_REPORTS_URL/api/v1/report/serve" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{"sessionId": "'$SESSION_ID'"}' > report.csv

Report Types​

Report NameKey ParametersDescription
registrationappGuidRegistration data for an event
attachmententries_ids, virtual_event_ids, from_date_id, to_date_idAttachment download activity
reportsEnrichmenttaskType, params.from_date, params.to_dateEnriched analytics data

Chat & Collaboration (C&C) Reports​

C&C reports require virtualeventid:<virtualEventId> in the KS privilege string.

Report NameDescription
pollsActivityPoll participation data per question
chatUserActivityPer-user chat engagement metrics
moderatorTranscriptsModerator-visible chat transcripts
chatModerationModeration actions log
groupChatTranscriptsGroup chat transcripts
privateTranscriptsPrivate chat transcripts
# Generate a C&C report
SESSION_ID=$(curl -s -X POST "$KALTURA_REPORTS_URL/api/v1/report/generate" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{
"reportName": "pollsActivity",
"reportParameters": {
"entries_ids": ["'$KALTURA_ENTRY_ID'"],
"virtual_event_ids": ["'$EVENT_ID'"],
"from_date_id": "2025-09-15",
"to_date_id": "2025-09-16"
}
}' | jq -r '.sessionId')

Date format for C&C reports: ISO 8601 with zero-padded days (e.g., 2025-09-15).