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.
apiKeyAuthorizationBearer <snoze_sk_…>Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
Success
application/json- response
data*array<>curl -X GET 'https://api.snoze.dev/v1/notification-preferences'{ "data": [ { "id": "string", "workspaceId": "string", "category": "collaboration", "kind": "comment", "channel": "in_app", "enabled": true, "cadence": "immediate" } ]}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.
Create or update a notification preference
Upserts one preference for the caller, keyed by channel plus its optional workspace, category, or kind override, so re-sending the same body is idempotent. A preference may override a category or a kind but not both, and an enabled channel needs a real cadence while a disabled one must use `never`. Scoping the preference to a `workspaceId` requires `workspace:read` there and accepts an `Idempotency-Key` header.