---
title: "Update operator notification preferences"
method: PATCH
path: "/agent/v1/notifications/preferences"
tags: ["Agent"]
---

# Update operator notification preferences

`PATCH /agent/v1/notifications/preferences`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/agent/v1/notifications/preferences`
- Auth: API key in header `SIGN-IN-WITH-X`

Cross-wallet effects require email_verified assurance. webhook_url changes require operator_passkey. security_events MUST remain 'always' (server returns 400 otherwise).

## Headers

- `SIGN-IN-WITH-X` string, required

## Request body

- NotificationPreferencesPatch
  - `digest_cadence` 'off' | 'daily' | 'weekly' | 'monthly'
  - `digest_day_of_week` integer
  - `digest_hour_utc` integer
  - `threshold_alerts` 'off' | 'digest_only' | 'immediate'
  - `lifecycle_events` 'off' | 'critical_only' | 'all'
  - `webhook_url` string, nullable
  - `locale` string
  - `timezone` string

## Other responses

- `303`: See Other → /agent/v1/notifications/preferences (re-read updated prefs)
- `400`: Invalid enum value or attempt to silence a mandatory class
- `403`: Required assurance level not met (email_verified for cross-wallet edits; operator_passkey for webhook_url changes)

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
