Activity Summary Aggregator
API Contract
REST
/api/v1/activity-summaries
7 endpoints
GET
/api/v1/activity-summaries/api/v1/activity-summaries
List aggregated activity summaries across all mentors
Public
Response Example
{
"data": [
{
"mentor_id": "mentor_001",
"total_sessions": 25,
"average_session_duration_minutes": 30,
"total_minutes": 750,
"last_session_date": "2026-03-18T15:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1
}
}
GET
/api/v1/activity-summaries/api/v1/activity-summaries/:mentor_id
Get full aggregated activity summary for a specific mentor
Public
Response Example
{
"mentor_id": "mentor_001",
"total_sessions": 25,
"average_session_duration_minutes": 30,
"total_minutes": 750,
"last_session_date": "2026-03-18T15:00:00Z"
}
POST
/api/v1/activity-summaries/api/v1/activity-summaries
Create or seed an activity summary record for a mentor
Public
Request Example
{
"mentor_id": "mentor_002",
"total_sessions": 10,
"average_session_duration_minutes": 45,
"total_minutes": 450,
"last_session_date": "2026-03-10T10:00:00Z"
}
Response Example
{
"mentor_id": "mentor_002",
"total_sessions": 10,
"average_session_duration_minutes": 45,
"total_minutes": 450,
"last_session_date": "2026-03-10T10:00:00Z"
}
PUT
/api/v1/activity-summaries/api/v1/activity-summaries/:mentor_id
Trigger re-aggregation / update the cached summary for a mentor
Public
Request Example
{
"force_refresh": true
}
Response Example
{
"mentor_id": "mentor_001",
"total_sessions": 28,
"average_session_duration_minutes": 31,
"total_minutes": 868,
"last_session_date": "2026-03-25T16:30:00Z"
}
DELETE
/api/v1/activity-summaries/api/v1/activity-summaries/:mentor_id
Remove cached activity summary for a mentor (forces fresh aggregation on next request)
Public
Response Example
{
"deleted": true,
"mentor_id": "mentor_001"
}
GET
/api/v1/activity-summaries/api/v1/activity-summaries/:mentor_id/total-sessions
Get total session count for a mentor
Public
Response Example
{
"mentor_id": "mentor_001",
"total_sessions": 25
}
GET
/api/v1/activity-summaries/api/v1/activity-summaries/:mentor_id/average-duration
Get average session duration in minutes for a mentor
Public
Response Example
{
"mentor_id": "mentor_001",
"average_session_duration_minutes": 30
}