Skip to main content
PUT
Update user profile or change password

Authorizations

x-access-token
string
header
required

JWT token passed in x-access-token header

Body

application/json

Any combination of authorized user properties. Only fields from the authorized list are accepted.

email
string<email>

User email address

fname
string

First name

lname
string

Last name

picture
string

Profile picture URL

remember_history_count
integer

Number of history items to remember

use_location
boolean

Whether to use location services

use_stt
boolean

Whether speech-to-text is enabled

dark_mode
boolean

Whether dark mode is enabled

pin_ui
boolean

Whether the UI sidebar is pinned

showSideBar
boolean

Whether to show the sidebar

Whether to display gallery as grid

toolsEnabled
string[]

Tools you choose (personal accounts only): the names of the tools the AI may use in this account's conversations. Send the FULL list on every change. An empty array switches every tool off (conversation only). When the field was never saved, the account uses the recommended set (the minimal preset returned by POST /api/user/tools).

Names that are not tools a personal account can have are dropped silently. The Google and Microsoft tools are in the list like any other tool; with no saved list, the ones whose service the account connected are on. Anything that is not an array is refused with 400. A member of a Digital Twin is refused with 400: the tools of a Digital Twin are set by its administrator.

Example:
toolGuidanceEnabled
boolean

Tools Guidance (personal accounts only). true adds detailed instructions on how and when the AI uses its tools to every question — useful for research; each question then uses more credits. Off when never set or false. Anything but true or false is refused with 400. A member of a Digital Twin is refused with 400: the Tools Guidance of a Digital Twin is set by its administrator. The current value is personal.toolGuidanceEnabled of POST /api/user/tools.

Example:

false

ragIgnore
boolean

Knowledge — retrieval mode (axis 1 of 2). When true, retrieval is skipped entirely, the vault is closed to the AI's file tools (nothing in the user's files can be listed, searched, opened or edited for the turn) and the LLM answers from its training only. Takes precedence over ragKagMode and ragOnlySearch. Maps to the UI's "Disabled" Knowledge mode.

ragKagMode
boolean

Knowledge — retrieval mode (axis 1 of 2): the person's choice between RAG + KAG Fusion and RAG. Missing (never set) or true: Pria's chat screens use RAG + KAG Fusion wherever knowledge-graph retrieval (KAG) is available for the vault in use — the knowledge-graph leg runs alongside the dense vector leg and the two are merged via Reciprocal Rank Fusion. false: the person chose RAG Only (dense vector retrieval only). KAG is always an augmentation on top of RAG — there is no "KAG without RAG" mode. Saving it records when the choice was made (ragKagModeChosenAt in the profile, written by the server; a body that sends it is refused like any field outside the list above), and only a recorded false keeps KAG off: a false saved before choices were recorded reads as no choice. Send it only for an explicit choice: turning retrieval off (ragIgnore) or Search Only does not change it. Turning a personal account's knowledge graph on (kagFusionEnabledPersonal: true, retrieval on) is a choice of RAG + KAG Fusion, so Pria's screens send ragKagMode: true with it.

Knowledge — output mode (axis 2 of 2, orthogonal to ragIgnore / ragKagMode). When true AND retrieval is on, Pria returns the raw vault chunks ("Search Only") instead of an LLM-rewritten answer. Combinable with ragKagMode (graph chunks included) and with vanilla RAG. No effect when ragIgnore=true. Knowledge mode combinations (frontend view, where KAG is available): • ragIgnore=true → Disabled • ragIgnore=false, ragKagMode missing/true, ragOnly=false → RAG + KAG Fusion • ragIgnore=false, ragKagMode=false, ragOnly=false → RAG Only • ragIgnore=false, ragKagMode missing/true, ragOnly=true → RAG + KAG Fusion + Search Only • ragIgnore=false, ragKagMode=false, ragOnly=true → RAG Only + Search Only ragKagMode=false counts only with ragKagModeChosenAt; without it, it reads as missing. Where KAG is not available, any ragKagMode reads RAG Only.

browser_voice
string

Selected browser voice for TTS

browser_voices
string[]

Available browser voices

mustChangePassword
boolean

Whether user must change password on next login

passwordChangeSkipOnSSO
boolean

Admin-set, default true: SSO sign-ins never see the forced password change

passwordChangeRequired
boolean

Per session: whether this sign-in must change the password (the method rides the session token)

updatePasswordOnSSO
boolean

Reset password on SSO login

rt_voice
string

Real-time voice selection (OpenAI Realtime)

gemini_rt_voice
string

Real-time voice selection (Gemini Live)

xai_rt_voice
string

Real-time voice selection (xAI Realtime)

openai_live_voice
string

Real-time voice selection (OpenAI GPT-Live), used when the Digital Twin sets none

ragLimitChunks
integer

How many knowledge segments a turn retrieves in your personal space, without a Digital Twin (default 2; rounded and clamped to 1-15)

Required range: 1 <= x <= 15
mfaEnabled
boolean

Whether email multi-factor authentication is enabled for this user

Response

Profile updated or password changed successfully

success
boolean
Example:

true

message
string

Either 'Profile updated!' or 'Password Changes Successfully'