List Course Reporting Students
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.
Authorization
bearer In: header
Path Parameters
Course object id
Query Parameters
Number of items per page of the results
1 <= valuePage number of the results
1 <= valueBoolean value to indicate if the response should be in CSV format
Start date for filtering data
date-timeEnd date for filtering data
date-timeSearch by student name or email
Field to sort on
"progress""progress" | "updatedAt" | "createdAt" | "watchTimeSeconds" | "catalogClickCount" | "rating""DESC""ASC" | "DESC"Header 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/students" \ -H "x-whitelabel-host: string"{
"data": [
{
"userId": "64a7b8c9d1e2f3a4b5c6d7e8",
"name": "Jane Doe",
"email": "jane@example.com",
"progressPercent": 65,
"status": "in_progress",
"startedAt": "2019-08-24T14:15:22Z",
"lastVisit": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"watchTimeSeconds": 1200,
"watchTimeIsEstimated": false,
"catalogClickCount": 2,
"rating": 5
}
],
"total": 42
}{
"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 GET
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 /progress` with `catalogVisit: true` when a learner opens the course from the catalog - `PUT /progress` with `secondsWatched` during 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`).
Get Course Review Summary GET
Returns average rating, review count, and star-rating distribution for a course.