Archive notifications out of the inbox
Stamps `archivedAt` on the caller's notifications — the ids given, or with `allRead` every already-read, unarchived one — so they drop out of the default listing, and appends an archive event to the workspace log. A body with neither ids nor `allRead` is a validation error. Restricting to a `workspaceId` requires `workspace:read` there and accepts an `Idempotency-Key` header to make retries safe.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Query Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/notifications/archive" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "notificationIds": [ "string" ], "archivedAt": "string" }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}Mark inbox notifications read
The account-level twin of the workspace mark-read: stamps `readAt` on the caller's unread notifications across every workspace, or within one when `workspaceId` is given. A body with neither ids nor `all` is a validation error, and a single id that matches nothing readable is not found. Scoping to a `workspaceId` requires `workspace:read` there and accepts an `Idempotency-Key` header to make retries safe.
List the caller's notification preferences
Returns every notification preference the caller has saved: the delivery channel, whether it is enabled, its cadence, and the workspace, category, or kind it overrides. Scoped to the authenticated user, so no workspace permission is involved.