# Notification preferences

Preferences belong to the signed-in member, not the account. Billing and legal emails, such as payment failures and subprocessor changes, always send and aren't listed.

## `GET /v1/notification-preferences`

Who: any signed-in member. Tokens get `403 forbidden`.

```json
{ "email": { "usage_thresholds": true, "deploy_failures": true, "new_errors": true, "uptime": true } }
```

Every topic is on until you turn it off.

| Topic | Sent when |
| --- | --- |
| `usage_thresholds` | A limit reaches 80% or 100% |
| `deploy_failures` | A deploy fails or the security scanner blocks it |
| `new_errors` | A new error group appears in a project |
| `uptime` | An uptime check starts or stops failing |

## `PUT /v1/notification-preferences`

Who: the same member. Body: the whole `email` object, every topic as `true` or `false`. Returns the saved object. A missing or unknown topic is `400 validation_failed`. Changes are in the audit log as `notification_preferences.updated`.

Turning a topic off stops the email only; the same events still show in the dashboard.