Notification Trigger Service
API Contract
REST
/api/v1/notification-triggers
5 endpoints
GET
/api/v1/notification-triggers/api/v1/notification-triggers
List notification trigger event logs
Public
Response Example
{
"data": [
{
"trigger_id": "trig-3301",
"event_type": "assignment_event",
"user_id": "usr-441",
"payload_summary": "Assignment asgn-991 posted",
"dispatched_at": "2026-03-25T13:00:00Z",
"status": "dispatched"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 34
}
}
GET
/api/v1/notification-triggers/api/v1/notification-triggers/:id
Get a specific trigger log by ID
Public
Response Example
{
"trigger_id": "trig-3301",
"event_type": "assignment_event",
"user_id": "usr-441",
"payload": {
"assignment_id": "asgn-991",
"action": "posted",
"due_at": "2026-03-27T23:59:00Z"
},
"dispatched_at": "2026-03-25T13:00:00Z",
"status": "dispatched"
}
POST
/api/v1/notification-triggers/api/v1/notification-triggers
Manually fire a notification trigger event
Public
Request Example
{
"event_type": "deadline_approaching",
"user_id": "usr-441",
"payload": {
"assignment_id": "asgn-991",
"deadline": "2026-03-27T23:59:00Z",
"hours_remaining": 24
}
}
Response Example
{
"trigger_id": "trig-3340",
"event_type": "deadline_approaching",
"user_id": "usr-441",
"status": "dispatched",
"dispatched_at": "2026-03-26T10:05:00Z"
}
PUT
/api/v1/notification-triggers/api/v1/notification-triggers/:id
Update trigger log status or metadata
Public
Request Example
{
"status": "failed",
"error": "FCM quota exceeded"
}
Response Example
{
"trigger_id": "trig-3301",
"status": "failed",
"error": "FCM quota exceeded"
}
DELETE
/api/v1/notification-triggers/api/v1/notification-triggers/:id
Delete a trigger log record
Public
Response Example
{
"deleted": true,
"trigger_id": "trig-3301"
}