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

# Get Preferences

`GET /v1/notification-preferences`

## Request

- Base URL: `https://api.usekeel.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usekeel.io/v1/notification-preferences`
- Auth: none declared

The caller's preferences, defaults lazily applied — never 404 (04-AC-23).

``NotificationPreferences``'s model defaults ARE the spec 01 §3 / D6
frozen policy (proven byte-for-byte in libs/db), so an absent row
renders exactly the state the engine would lazily create.

## Headers

- `Authorization` string, nullable
- `X-Org-Id` string, nullable

## Response `200`

Successful Response

- NotificationPreferencesResponse: `GET/PUT /v1/notification-preferences` — exactly the spec 01 §3 fields. ``principal_id``/``created_at``/``updated_at`` are scoping/storage internals and stay unexposed (same stance as §1.2's send_id).
  - `operational` boolean, required
  - `product_updates` boolean, required
  - `announcements` boolean, required
  - `email_enabled` boolean, required
  - `in_app_enabled` boolean, required
  - `timezone` string, nullable, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/usekeel/apis/keel-api.md) · [All operations](https://skmtc.dev/usekeel/apis/keel-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usekeel/apis/keel-api/revisions/3191ca10b0ab?raw)
