Documentation menu

API reference

9 operations in notifications. Raw spec: openapi.json.

GET/api/v1/notification-org-defaults

GET /api/notification-org-defaults — the org's default rows (admin).

Responses

StatusDescription
200

Security: bearer

PUT/api/v1/notification-org-defaults

PUT /api/notification-org-defaults — upserts one kind's org default.

Request body

UpdateOrgDefaultRequest

Responses

StatusDescription
200
422invalid quiet-hours window or timezone

Security: bearer

GET/api/v1/notification-preferences

GET /api/notification-preferences — the caller's effective preference for every kind (defaults-first resolution applied).

Responses

StatusDescription
200

Security: bearer

PUT/api/v1/notification-preferences

PUT /api/notification-preferences — upserts the caller's override row for one kind and emits `notification_prefs.updated`. Quiet hours validate as a paired `HH:MM` window in a real IANA timezone; validation errors return 422.

Request body

UpdatePreferenceRequest

Responses

StatusDescription
200
422invalid quiet-hours window or timezone

Security: bearer

GET/api/v1/notifications

GET /api/notifications — the caller's notifications, newest first, keyset-paginated.

Parameters

NameInTypeRequiredDescription
unread_onlyquerybooleanNo
limitqueryintegerNo
cursorquery—NoOpaque keyset cursor from a previous page's `next_cursor`.

Responses

StatusDescription
200

Security: bearer

POST/api/v1/notifications/mark-read

POST /api/notifications/mark-read — bulk variant; unknown and already-read ids are skipped (idempotent).

Request body

MarkReadBulkRequest

Responses

StatusDescription
200
422empty or oversized id list

Security: bearer

POST/api/v1/notifications/read-all

POST /api/notifications/read-all — empties the unread badge.

Responses

StatusDescription
200

Security: bearer

GET/api/v1/notifications/unread-count

GET /api/notifications/unread-count

Responses

StatusDescription
200

Security: bearer

POST/api/v1/notifications/{id}/read

POST /api/notifications/{id}/read — marks one notification read and emits `notification.read` for cross-session badge sync.

Parameters

NameInTypeRequiredDescription
idpathstringYes

Responses

StatusDescription
204

Security: bearer