Get Course Reporting Summary
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.
Authorization
bearer In: header
Query Parameters
Start date for filtering data
date-timeEnd date for filtering data
date-timeComma-separated course IDs to filter
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/reporting/summary" \ -H "x-whitelabel-host: string"{
"courses": [
{
"courseId": "string",
"title": "string",
"categoryName": "string",
"initiated": 0,
"completed": 0,
"averageProgressPercent": 0,
"watchTimeTotalSeconds": 0,
"catalogTotalClicks": 0,
"averageRating": 0,
"reviewCount": 0
}
],
"mostWatchedCourses": [
{
"courseId": "string",
"title": "string",
"categoryName": "string",
"initiated": 0,
"completed": 0,
"averageProgressPercent": 0,
"watchTimeTotalSeconds": 0,
"catalogTotalClicks": 0,
"averageRating": 0,
"reviewCount": 0
}
],
"bestRatedCourses": [
{
"courseId": "string",
"title": "string",
"categoryName": "string",
"initiated": 0,
"completed": 0,
"averageProgressPercent": 0,
"watchTimeTotalSeconds": 0,
"catalogTotalClicks": 0,
"averageRating": 0,
"reviewCount": 0
}
],
"watchTimeByCategory": [
{
"categoryName": "string",
"totalWatchTimeSeconds": 0
}
],
"ratingsByCategory": [
{
"categoryName": "string",
"averageRating": 0,
"reviewCount": 0
}
]
}{
"code": 400,
"type": "Bad request",
"statusMessage": "BAD_REQUEST",
"message": "Invalid request",
"success": false
}{
"code": 401,
"type": "Unauthorized",
"statusMessage": "UNAUTHORIZED",
"message": "Invalid token",
"success": false
}Delete Chapter DELETE
Permanently delete a chapter along with its QnA, assignment, and all assignment submissions. Course progress is recalculated automatically.
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`).