Admin Dashboard
Overview
Returns a cross-tenant summary of call activity across all users, including total calls, duration, and the number of active users.
Endpoint
- URL:
/admin/analytics/dashboard
- Method:
GET
- Authentication: Super-admin required
Request
Query Parameters
| Parameter |
Type |
Required |
Default |
Description |
start_date |
datetime |
No |
30 days ago |
ISO 8601 start of range. |
end_date |
datetime |
No |
Now |
ISO 8601 end of range. |
user_email |
string |
No |
-- |
Narrow results to a specific user. |
Response Schema
| Field |
Type |
Description |
success |
boolean |
Operation status. |
message |
string |
Result message. |
data.total_calls |
integer |
Total calls across all users. |
data.total_duration_minutes |
float |
Total call duration in minutes. |
data.total_duration_hours |
float |
Total call duration in hours. |
data.avg_duration_minutes |
float |
Average call duration in minutes. |
data.total_active_users |
integer |
Distinct users who made calls in the range. |
data.date_range.start_date |
string |
Applied start date. |
data.date_range.end_date |
string |
Applied end date. |
HTTP Status Codes
| Code |
Description |
| 200 |
Dashboard data returned successfully. |
| 401 |
Unauthorized (invalid or missing API key). |
| 403 |
Forbidden (API key is not a super-admin). |
| 500 |
Internal server error. |
Example Request
curl -X GET "https://api-livekit-vyom.indusnettechnologies.com/admin/analytics/dashboard" \
-H "Authorization: Bearer YOUR_SUPER_ADMIN_API_KEY"
Example Response
{
"success": true,
"message": "Admin dashboard fetched successfully",
"data": {
"total_calls": 2450,
"total_duration_minutes": 11025.50,
"total_duration_hours": 183.76,
"avg_duration_minutes": 4.50,
"total_active_users": 18,
"date_range": {
"start_date": "2026-02-26T00:00:00Z",
"end_date": "2026-03-28T23:59:59Z"
}
}
}
Notes
total_active_users counts distinct created_by_email values with at least one call in the range.
- When
user_email is provided, the response is equivalent to a single-user dashboard.
avg_duration_minutes is calculated as total_duration_minutes / total_calls (derived from totals, not raw Mongo $avg), and returns 0 when total_calls is 0. Duration values are rounded to two decimal places.