---
title: "Update Notification Preferences"
method: PATCH
path: "/notifications/preferences"
tags: ["notifications"]
---

# Update Notification Preferences

`PATCH /notifications/preferences`

## Request

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

Upsert the caller's notification preferences.

For each (category, channel) pair in `body.preferences`, set the row's
column. Unknown categories/channels are silently dropped (whitelist).
Omitted channels on an INSERT pick up the table's column defaults, which
match `pref_allows()`'s coded defaults by design.

## Request body

- UpdateNotificationPreferencesRequest: Partial update - `{ category: { channel: bool } }`. Only the (category, channel) pairs the caller sends are touched; missing pairs stay as-is (or fall back to coded defaults if no row exists yet).
  - `preferences` object

## Response `200`

Successful Response

- UpdateNotificationPreferencesResponse
  - `success` boolean, required
  - `preferences` object, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles.md) - [All operations](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/llms.txt) - [OpenAPI document](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/revisions/25a7813e21fd?raw)
