Reminder Scheduler Service
API Contract
REST
/api/v1/reminder-scheduler
5 endpoints
GET
/api/v1/reminder-scheduler/api/v1/reminder-scheduler/status
Get current scheduler status and last run details
Public
Response Example
{
"status": "active",
"last_run_at": "2026-03-26T08:00:01Z",
"next_run_at": "2026-03-27T08:00:00Z",
"last_run_assignments_evaluated": 47,
"last_run_reminders_sent": 3,
"last_run_escalations_sent": 1
}
POST
/api/v1/reminder-scheduler/api/v1/reminder-scheduler/run
Manually trigger a reminder check cycle
Public
Request Example
{
"dry_run": false
}
Response Example
{
"run_id": "run_20260326_101900",
"started_at": "2026-03-26T10:19:00Z",
"assignments_evaluated": 47,
"reminders_dispatched": 2,
"escalations_dispatched": 1,
"completed_at": "2026-03-26T10:19:04Z"
}
POST
/api/v1/reminder-scheduler/api/v1/reminder-scheduler/evaluate/:assignment_id
Evaluate a single assignment for reminder/escalation eligibility
Public
Response Example
{
"assignment_id": "asgn_001",
"days_since_contact": 16,
"reminder_due": true,
"escalation_due": false,
"action_taken": "reminder_dispatched",
"evaluated_at": "2026-03-26T10:20:00Z"
}
GET
/api/v1/reminder-scheduler/api/v1/reminder-scheduler/due-reminders
List assignments currently due for a reminder
Public
Response Example
{
"data": [
{
"assignment_id": "asgn_002",
"mentee_name": "Ingrid Halvorsen",
"peer_mentor_id": "user_019",
"days_since_contact": 22,
"reminder_threshold": 14
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 2
}
}
GET
/api/v1/reminder-scheduler/api/v1/reminder-scheduler/due-escalations
List assignments currently due for escalation
Public
Response Example
{
"data": [
{
"assignment_id": "asgn_007",
"mentee_name": "Knut Bergström",
"peer_mentor_id": "user_033",
"coordinator_id": "user_007",
"days_since_contact": 28,
"escalation_threshold": 21,
"last_reminder_sent_at": "2026-03-12T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1
}
}