---
title: Reports Microservice
url: https://docs.kaltura.com/docs/rich-media-cms-apis/analytics/analytics-reports-microservice
---

## 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 &lt;KS&gt;`

### Two-Step Generate/Serve Pattern

```bash
# 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 Name | Key Parameters | Description |
|-------------|----------------|-------------|
| `registration` | `appGuid` | Registration data for an event |
| `attachment` | `entries_ids`, `virtual_event_ids`, `from_date_id`, `to_date_id` | Attachment download activity |
| `reportsEnrichment` | `taskType`, `params.from_date`, `params.to_date` | Enriched analytics data |

### Chat & Collaboration (C&C) Reports

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

| Report Name | Description |
|-------------|-------------|
| `pollsActivity` | Poll participation data per question |
| `chatUserActivity` | Per-user chat engagement metrics |
| `moderatorTranscripts` | Moderator-visible chat transcripts |
| `chatModeration` | Moderation actions log |
| `groupChatTranscripts` | Group chat transcripts |
| `privateTranscripts` | Private chat transcripts |

```bash
# 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`).
