Update My Profile
Change your name, time zone, locale, theme, appearance (RO-355: `appearance` keys are merged into the saved ones; a read returns all of them with defaults) or sidebar pins (RO-310: `pinned_pages` replaces the list). The email can't be changed here (422 `extra_forbidden`) until email verification exists.
API key access
/api/v1/me/profileAccess token from /api/v1/auth/login, or an API key (ro_pat_..., RO-176) from /api/v1/workspaces/current/api-keys: the key implies its workspace and needs the route's scope. MCP connectors (/api/v1/mcp only) may use an OAuth access token (ro_oat_..., RO-284).
In: header
length <= 200An IANA time zone, e.g. Europe/Berlin.
length <= 64A BCP 47 tag (en-GB) or a language name (German).
length <= 35A colour theme preference.
"system" | "light" | "dark"Settings → Appearance (RO-355): the given keys are merged into the saved ones.
The sidebar pins (RO-310), replacing the saved list: app paths starting with /app, at
most 20, each at most 200 characters (duplicates dropped).
items <= 20Response Body
curl -X PATCH "http://localhost:8000/api/v1/me/profile" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"email": "string",
"name": "string",
"timezone": "string",
"locale": "string",
"theme": "system",
"appearance": {
"surface": "solid",
"glass_blur": 4,
"glass_opacity": 30,
"glass_tint": "warm",
"wallpaper": "ember",
"motion": "full",
"density": "comfortable"
},
"pinned_pages": [
"string"
],
"has_password": true,
"created_at": "2019-08-24T14:15:22Z"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}