Get all preferences for the authenticated user
GET/api/v1/user/preferences
The store is an open key -> JSON map: any syntactically valid key is
accepted, and this endpoint returns whatever the user has set. The list
below is not a whitelist, it is the set Codex's own clients read and write.
A client that wants a user's settings to follow them between devices has to
use these exact keys and value shapes.
| Key | Value |
|---|---|
ui.theme | "light", "dark", or "system" (default "system") |
library.show_deleted_books | boolean (default false) |
want_to_read.sort | "newest", "oldest", or "custom" (default "newest") |
release_tracking.muted_series_ids | array of series id strings (default []) |
Keys are snake_case, matching the server settings store rather than the
camelCase of the JSON fields around them: a key is a value in a database
column, not a field name.
Global reader settings are deliberately not here. A client's default fit mode, zoom and background are device-local state, held by that client and never synced, because a phone and a desktop legitimately want different ones.
Per-series reader overrides are a different thing and do sync, through
/api/v1/user/series/{series_id}/reader-settings. They describe how one
book is made rather than how one device is used: a manga is right to left
on every screen the user owns, and the stored series value is routinely
absent or wrong, so a reader needs that correction to follow them.
Responses
- 200
- 401
User preferences retrieved
Unauthorized