Update the signed-in user
const url = 'https://app.mondochat.io/v1/me';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"last_seen":"nobody","read_receipts":false}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://app.mondochat.io/v1/me \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "last_seen": "nobody", "read_receipts": false }'Changes the caller’s language and privacy choices. A field left out is unchanged. last_seen: nobody hides the caller’s last seen from everyone and everyone’s from them; read_receipts: false stops read ticks both ways. inbound: members refuses messages from guests; it needs workspace.inbound and a member that is not guest-like. Needs a session token.
Errors: 422 validation for any other value; 403 policy_denied with reason inbound when workspace.inbound is off or the caller is guest-like.
Guide: Users.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Responses
Section titled “Responses”Successful Response
The signed-in user: their profile and their own privacy and onboarding state.
object
True once the user dismissed Get the app or has had a device.
The user’s id on your site, the sub claim.
The user’s id in mondochat.
Members: guests may not message this user.
member for a user your server signed in, guest for an anonymous one.
Nobody hides this user’s last seen from everyone and everyone’s from them.
Display name.
True once the viewer tapped or dismissed the notify prompt.
False while the onboarding slides are due, and again onboarding.repeat_hours after they were shown when that is set.
False: this user neither sends nor sees read ticks in any conversation.
A role key from the app’s roles.
Example
{ "app_prompt_done": false, "avatar": "https://example.test/alice.jpg", "external_id": "alice", "id": "0199d6a0-1000-7000-8000-000000000001", "inbound": "everyone", "kind": "member", "lang": "en", "last_seen": "everyone", "name": "Alice", "notify_prompt_done": false, "onboarding_done": true, "onboarding_shown_at": "2026-11-01T09:00:00Z", "read_receipts": true, "role": "member"}Problem
An RFC 9457 problem: the body of every error answer.
object
The stable error code to branch on, such as policy_denied.
What went wrong this time, when there is more to say.
For validation, one entry per invalid field.
One invalid field.
object
The path to the field.
What is wrong with it.
The path of the request.
For policy_denied and limit_reached, the rule or limit that refused the request; for forbidden, a short cause such as you_blocked; for banned, temporary when the ban expires.
The HTTP status code.
A short summary of the problem.
A URL that names the problem, https://app.mondochat.io/problems/<code>.
Example
{ "code": "policy_denied", "detail": null, "instance": "/v1/conversations/0199d6a0-2000-7000-8000-000000000001", "reason": "pins", "status": 403, "title": "Policy denied", "type": "https://app.mondochat.io/problems/policy_denied"}