Confluye
Endpoints

Notifications

List the derived workspace inbox and mark rows read or archived.

Notifications are computed from the platform snapshot, then overlaid with in-memory read and archive sets. Conceptual behavior: Search and notifications.

PathAuthEnvelope
/api/notificationsSessionBare JSON
/api/v1/notificationsAny valid bearer API keyBare JSON

No Idempotency-Key. No pagination. No create or hard-delete.

Endpoints

MethodPathDescription
GET/api/notifications{ notifications } (?workspaceId=)
PATCH/api/notificationsMark one or all
GET/api/v1/notifications{ notifications } for the key workspace
PATCH/api/v1/notificationsSame actions; workspace from the key

Auth

Session: membership required. Foreign workspace: 403 Cannot access notifications for another workspace. (list and PATCH, including all: true).

v1: 401 Valid bearer API key is required. Workspace, personal, and copilot keys can read. PATCH requires current workspace.write; a valid read-only key receives 403. workspaceId in the PATCH body is ignored.

Workspace keys with workspace.secret.read or workspace.write receive full notification content. Personal, Copilot, Viewer, organization-derived, and oversight reads receive workspace-safe.v1. The safe row keeps id, workspaceId, type, priority, status, createdAt, targetView, and optional targetId; it replaces title and body with [redacted] and includes:

{ "redaction": { "applied": true, "projection": "safe-content", "contractVersion": "workspace-safe.v1" } }

PATCH body

{ "id": "notif_…", "action": "read", "workspaceId": "session-only", "all": false }
FieldRules
allIf true, mark every non-archived row read; id not required
idRequired when all is not true
actionread (default if omitted) or archive. Else 400
workspaceIdSession only

200 { notification } for one id, or { notifications } for all. Unknown id: 404 Notification not found.

Notification object

FieldValues / notes
idStable derived id
workspaceIdWorkspace
typerun | schedule | deployment | credential | document
prioritycritical | warning | info | success
titlestring
bodystring
statusunread | read | archived
createdAtISO-8601
targetViewworkflow | databases | docs | knowledge | schedules | logs | settings
targetIdOptional jump target

Errors

HTTPBody
400Notification id is required.
400Notification action must be read or archive.
401Valid bearer API key is required
403Cannot access notifications for another workspace.
404Notification not found.

Gaps

  • Read/archive sets are in-process only; they do not survive restart or another instance.
  • all: true does not archive; archived rows stay archived and are omitted from the mark-all return list.
  • No filter query (status, type).
  • v1 safe reads do not require a workspace-scoped key; mutations do require workspace write authority.

Next steps