Get Course Reporting
Returns live analytics for a single course. Numbers in the docs are examples only — your response reflects real progress data for the course.
Data source: MongoDB progress documents (course-level stubs + chapter progress). Fan apps must send:
PUT /progresswithcatalogVisit: truewhen a learner opens the course from the catalogPUT /progresswithsecondsWatchedduring playback for watch time
Response wrapper: { success, message, data: { enrollment, progress, catalog, watchTime, metadata } }
| Section | Key fields |
|---|---|
| enrollment | totalEnrolled (subscribers), initiated (started learning), catalogBounced (clicked only) |
| progress | averageProgressPercent, distribution (always 6 buckets), completionTrend (by day) |
| catalog | uniqueClickers, totalClicks, bouncedClickers |
| watchTime | totalSeconds, averageSecondsPerStudent, isEstimated |
| metadata | category, courseDurationMinutes |
Optional startDate / endDate filter progress rows by updatedAt (does not affect totalEnrolled).
Authorization
bearer In: header
Path Parameters
Course object id
Query Parameters
Start date for filtering data
date-timeEnd date for filtering data
date-timeHeader Parameters
Host name of the dashboard, ex: mydomain.tagmango.com
Response Body
application/json
application/json
application/json
curl -X GET "https://api-prod-new.tagmango.com/api/v1/external/courses/66c4964c11e7fef26751f3a7/reporting" \ -H "x-whitelabel-host: string"{
"enrollment": {
"totalEnrolled": 120,
"totalActiveLearners": 45,
"initiated": 80,
"inProgress": 35,
"completed": 20,
"catalogVisited": 90,
"catalogBounced": 10
},
"progress": {
"averageProgressPercent": 42.5,
"distribution": [
{
"label": "26% - 50%",
"count": 12,
"percent": 15
}
],
"completionTrend": [
{
"period": "2026-06-01",
"count": 3
}
]
},
"catalog": {
"uniqueClickers": 90,
"totalClicks": 150,
"bouncedClickers": 10
},
"watchTime": {
"totalSeconds": 36000,
"averageSecondsPerStudent": 450,
"isEstimated": true
},
"metadata": {
"category": {
"name": "Marketing"
},
"courseDurationMinutes": 90
}
}{
"code": 400,
"type": "Bad request",
"statusMessage": "BAD_REQUEST",
"message": "Invalid request",
"success": false
}{
"code": 401,
"type": "Unauthorized",
"statusMessage": "UNAUTHORIZED",
"message": "Invalid token",
"success": false
}Get Course Reporting Summary GET
Returns creator-level course analytics across all courses (or a filtered subset). Includes per-course metrics, top 10 most-watched courses, top 10 best-rated courses, watch time by category, and ratings by category.
List Course Reporting Students GET
Returns paginated per-student progress, watch time, catalog click data, and course rating (if the learner submitted a review). Pass `csv=true` to download results as CSV instead of JSON.