---
title: "Get notification preferences"
method: GET
path: "/notification-preferences"
tags: ["Notification Preferences"]
---

# Get notification preferences

`GET /notification-preferences`

Get how the current user is notified, globally and per workspace. Configured secrets are reported as booleans plus a masked preview, never in full.

## Response `200`

Notification preferences

- NotificationPreferences
  - `emailAddress` string, nullable, required
  - `emailEnabled` boolean, required
  - `ntfyEnabled` boolean, required
  - `ntfyConfigured` boolean, required
  - `ntfyServerUrl` string, nullable, required
  - `ntfyTopic` string, nullable, required
  - `ntfyTokenConfigured` boolean, required
  - `maskedNtfyToken` string, nullable, required
  - `gotifyEnabled` boolean, required
  - `gotifyConfigured` boolean, required
  - `gotifyServerUrl` string, nullable, required
  - `gotifyTokenConfigured` boolean, required
  - `maskedGotifyToken` string, nullable, required
  - `webhookEnabled` boolean, required
  - `webhookConfigured` boolean, required
  - `webhookUrl` string, nullable, required
  - `webhookSecretConfigured` boolean, required
  - `maskedWebhookSecret` string, nullable, required
  - `taskAssignmentEnabled` boolean, required
  - `taskCommentEnabled` boolean, required
  - `taskStatusChangeEnabled` boolean, required
  - `dueDateReminderEnabled` boolean, required
  - `dueDateReminderLeadTimeMinutes` number, required — How long before a due date the reminder fires, in minutes.
  - `workspaces` NotificationPreferenceWorkspaceRule[], required — Per-workspace overrides. A workspace with no rule follows the global settings.
    - `id` string, required
    - `workspaceId` string, required
    - `workspaceName` string, required
    - `isActive` boolean, required — Turn all notifications for this workspace on or off.
    - `emailEnabled` boolean, required
    - `ntfyEnabled` boolean, required
    - `gotifyEnabled` boolean, required
    - `webhookEnabled` boolean, required
    - `projectMode` 'all' | 'selected', required — `all` notifies for every project in the workspace; `selected` restricts it to selectedProjectIds.
    - `selectedProjectIds` string[], required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `createdAt` string, date-time, nullable, required
  - `updatedAt` string, date-time, nullable, required

## Other responses

- `401` — Missing or invalid credentials

## Changes

- **2026-08-24** `08bbb5bedb5d` — 3 breaking, 7 info
  - removed the media type `application/json` for the response with the status `401`
  - the `createdAt` response's property type/format changed from ``/`` to `string, null`/`date-time` for status `200`
  - the `updatedAt` response's property type/format changed from ``/`` to `string, null`/`date-time` for status `200`
  - removed the non-success response with the status `400`
  - …6 more
- **2026-07-11** `32cece1ebe43` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/notification-preferences/get.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) · [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/usekaneo/kaneo-api/revisions/9d1da42c10ce/schema)
