Update the signed-in user's notification preferences
Changes only the category-channel pairs listed in preferences; every other pair keeps its current state. A schedule replaces the signed-in user's delivery schedule. Set schedule.enabled to false to allow delivery at every time. Preferences are scoped to the organization on the signed-in user's token. A user token calls this on behalf of the signed-in user. Returns 400 when a listed category cannot be disabled, and the whole request is then rejected with no change applied.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Request Body
application/json
The signed-in user's notification preference changes. Only the listed category-channel pairs change; every other pair keeps its current state. A schedule replaces the signed-in user's delivery schedule.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/user/notifications/preferences" \ -H "Content-Type: application/json" \ -d '{}'{ "categories": [ { "category": "SECURITY", "mandatory": true, "preference_default": "MANDATORY", "channels": [ { "channel": "EMAIL", "enabled": true } ] } ], "schedule": { "enabled": true, "weekly_schedule": { "property1": { "enabled": true, "hours": [ { "start": "09:00", "end": "17:00" } ] }, "property2": { "enabled": true, "hours": [ { "start": "09:00", "end": "17:00" } ] } } }}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}Get the signed-in user's notification preferences GET
Returns every notification category with its per-channel delivery state and whether the category can be disabled. A category with no state expressed by the signed-in user or the organization delivers by default, except `PROMOTION`, which delivers only after the signed-in user opts in. Preferences are scoped to the organization on the signed-in user's token. `schedule` is null when the signed-in user never set a delivery schedule. A user token calls this on behalf of the signed-in user.
List my notifications GET
Newest first. Omit read and archived to list everything that is not snoozed now; pass read=false&archived=false for the outstanding work. Pass snoozed=true for the snoozed messages.