Skip to content

Get my notification + view preferences

GET
/account/preferences

Per-user application-behavior preferences: which channels (in_app, email) the user wants each notification event delivered through, plus default-view selections (home tab, browse layout, browse sort) that apply to the user’s next page load.

First-visit callers (no row yet) get a zero-value response — empty notification_channels, empty default_views, but the canonical known_event_types, known_channels, and per-event default_channels_by_event are always populated so the UI can render the toggle grid without hard-coding the catalog.

Channel resolution at notification-write time falls back to default_channels_by_event for any event the user hasn’t explicitly set. An explicit empty array MEANS “deliver nothing for this event” and overrides the default.

User preferences.

GET / PATCH response for per-user preferences. Includes the build’s known event-type + channel catalogs so the UI renders toggle grids without hard-coding the lists client-side. Per-event system defaults are surfaced so the UI can show “follows system default — in_app only” hints alongside each toggle.

object
notification_channels
required
object
key
additional properties
Array<string>
email_cadence

Per-event-type email cadence. Absent key = immediate. Values: immediate | hourly | daily | weekly.

object
key
additional properties
string
default_views
required

Default-view selections. Unset fields fall back to per-route defaults at render time. Adding a new view knob is a string-additive change; the valid value sets grow as new layouts ship in later phases.

object
home_tab

Which tab the home page lands on. Valid values today: following, latest, trending, for_you. Empty/unset falls back to latest.

string
browse_layout

Default browse-feed layout. Valid values today: grid, masonry, thumbnail, list. Empty/unset falls back to the route’s default.

string
browse_sort

Default browse-feed sort. Valid values today: newest, oldest, popular, trending. Empty/unset falls back to the route’s default.

string
known_event_types
required

Canonical ordered list of notification event types this build knows about. Order is the recommended rendering order in the UI.

Array<string>
known_channels
required

Canonical channel names this build supports (in_app, email, future: sms, push, webhook).

Array<string>
default_channels_by_event
required

Per-event-type system default channel list. Applied at notification-write time when the user’s notification_channels doesn’t have that key.

object
key
additional properties
Array<string>

Authentication required, missing, or invalid

object
error
required

Human-readable error summary

string
Example
the request could not be completed
Example
{
"error": "authentication required: sign in and retry with a valid session or API token"
}

Unexpected server error

object
error
required

Human-readable error summary

string
Example
the request could not be completed