Skip to main content

Notifications API

Access and manage user notifications.

Endpoints Overview

MethodEndpointDescription
GET/notificationsList notifications
PATCH/notifications/{id}Mark as read
POST/notifications/mark-all-readMark all read
GET/notifications/unread-countGet unread count

List Notifications

GET /notifications

Query Parameters

ParameterTypeDescription
unread_onlybooleanFilter to unread
typestringFilter by notification type
pageintegerPage number
sizeintegerItems per page

Response

{
"items": [
{
"id": "...",
"type": "quality_alert",
"title": "Quality Check Failed",
"message": "Freshness check failed for Customer Events",
"read": false,
"data": {
"alert_id": "...",
"product_id": "...",
"severity": "critical"
},
"created_at": "2026-01-15T10:30:00Z"
},
{
"id": "...",
"type": "access_approved",
"title": "Access Request Approved",
"message": "Your request for Sales Data was approved",
"read": true,
"data": {
"request_id": "...",
"product_id": "..."
},
"created_at": "2026-01-14T16:00:00Z"
}
],
"total": 15,
"page": 1,
"size": 20
}

Notification Types

TypeDescription
quality_alertQuality check failed
quality_resolvedQuality issue resolved
access_submittedNew access request (for reviewers)
access_approvedAccess request approved
access_rejectedAccess request rejected
issue_assignedIssue assigned to you
issue_mentionedMentioned in issue comment
meeting_invitedInvited to meeting
meeting_reminderUpcoming meeting
action_item_dueAction item due soon
contract_violationSLA breach detected

Mark as Read

PATCH /notifications/{id}
{
"read": true
}

Mark All Read

POST /notifications/mark-all-read

Optionally filter by type:

{
"type": "quality_alert"
}

Unread Count

For badge display:

GET /notifications/unread-count
{
"count": 5,
"by_type": {
"quality_alert": 2,
"access_submitted": 3
}
}

Notification Settings

Control which notifications you receive:

PATCH /preferences
{
"notifications": {
"quality_alerts": true,
"access_requests": true,
"meeting_reminders": true,
"email_enabled": true,
"email_digest": "daily"
}
}

Digest Options

ValueDescription
immediateSend email immediately
hourlyHourly digest
dailyDaily digest (9 AM)
weeklyWeekly digest (Monday)
noneNo email notifications