email_preferences.
GET (preview)
POST (commit)
| Property | Value |
|---|---|
| Auth | Not required (token is the binding) |
| Idempotent | Yes |
Body
| Field | Type | Required | Notes |
|---|---|---|---|
token | string | yes | The token from the email link. |
categories | string[] | no | Categories to opt out of. |
all | boolean | no | If true, opts out of all marketing categories. Transactional emails still send. |
Categories
product_updates, ritual_emails, score_decay_reminders, peer_benchmark_updates, weekly_digest. Transactional categories (account, billing, security) cannot be opted out of.
Errors
| Status | Code | When |
|---|---|---|
| 400 | Token required | No token. |
| 404 | Token invalid | Bad or aged-out token. |
| 500 | INTERNAL_ERROR | Write failed. |
placeholder, breaking CAN-SPAM compliance).