Role-Aware Notification Filter
API Contract
REST
/api/v1/notification-filters
5 endpoints
GET
/api/v1/notification-filters/api/v1/notification-filters
List all saved notification filter configurations
Public
Response Example
{
"data": [
{
"id": "filter_coord_001",
"user_id": "user_coord_abc",
"role": "coordinator",
"filter_name": "Coordinator default",
"query_filter": {
"visible_types": [
"team_update",
"task_assigned",
"peer_mention"
],
"include_peer_mentor_ids": [
"user_pm_001",
"user_pm_002"
]
},
"is_active": true
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1
}
}
GET
/api/v1/notification-filters/api/v1/notification-filters/:id
Get a specific notification filter configuration
Public
Response Example
{
"id": "filter_coord_001",
"user_id": "user_coord_abc",
"role": "coordinator",
"filter_name": "Coordinator default",
"query_filter": {
"visible_types": [
"team_update",
"task_assigned",
"peer_mention"
],
"include_peer_mentor_ids": [
"user_pm_001",
"user_pm_002"
]
},
"is_active": true,
"created_at": "2026-02-01T08:00:00Z"
}
POST
/api/v1/notification-filters/api/v1/notification-filters
Create a role-aware filter configuration for a user
Public
Request Example
{
"user_id": "user_pm_007",
"role": "peer_mentor",
"filter_name": "Peer mentor focus filter",
"query_filter": {
"visible_types": [
"goal_update",
"check_in_reminder",
"peer_mention"
],
"exclude_types": [
"admin_announcement"
]
},
"is_active": true
}
Response Example
{
"id": "filter_pm_007",
"user_id": "user_pm_007",
"role": "peer_mentor",
"filter_name": "Peer mentor focus filter",
"query_filter": {
"visible_types": [
"goal_update",
"check_in_reminder",
"peer_mention"
],
"exclude_types": [
"admin_announcement"
]
},
"is_active": true,
"created_at": "2026-03-26T10:30:00Z"
}
PUT
/api/v1/notification-filters/api/v1/notification-filters/:id
Update an existing notification filter configuration
Public
Request Example
{
"query_filter": {
"visible_types": [
"goal_update",
"check_in_reminder",
"peer_mention",
"badge_earned"
],
"exclude_types": []
}
}
Response Example
{
"id": "filter_pm_007",
"user_id": "user_pm_007",
"role": "peer_mentor",
"filter_name": "Peer mentor focus filter",
"query_filter": {
"visible_types": [
"goal_update",
"check_in_reminder",
"peer_mention",
"badge_earned"
],
"exclude_types": []
},
"is_active": true,
"updated_at": "2026-03-26T11:00:00Z"
}
DELETE
/api/v1/notification-filters/api/v1/notification-filters/:id
Delete a notification filter configuration
Public
Response Example
{
"success": true,
"deleted_id": "filter_pm_007"
}