Skip to content

Update Current User Profile

PATCH
/api/users/me
curl --request PATCH \
--url https://example.com/api/users/me \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "email": "example", "full_name": "example", "password": "example", "timezone": "UTC", "username": "example" }'

Update current user’s profile.

email is NOT settable here (Fable F1) — use POST /users/me/email/change, which requires proving ownership of the new address before it takes effect. Password is also excluded (see POST /auth/password/change).

Media type application/json
UserUpdate

Self-service profile update schema.

email is deliberately excluded from UserBase’s fields here (Fable F1): changing email requires proving ownership of the NEW address first (see POST /users/me/email/change), since a silent change would both let an attacker redirect a future subscription/billing record and let an unverified account pre-hijack a victim’s Google Sign-In auto-link.

object
email
Email
null
full_name
Any of:
string
<= 255 characters
password
Any of:
string
>= 8 characters <= 128 characters
timezone
Any of:
string
username
Any of:
string
>= 3 characters <= 50 characters

Successful Response

Media type application/json
UserResponse

User response schema

object
created_at
required
Created At
string format: date-time
current_terms_version
Current Terms Version
string
""
email
required
Email
string format: email
full_name
required
Any of:
string
id
required
Id
string format: uuid
is_active
required
Is Active
boolean
is_superuser
Is Superuser
boolean
is_verified
required
Is Verified
boolean
last_login
required
Any of:
string format: date-time
organization_id
Any of:
string format: uuid
terms_acceptance_required
Terms Acceptance Required
boolean
terms_accepted_at
Any of:
string format: date-time
terms_version
Any of:
string
timezone
Any of:
string
username
required
Username
string
Example
{
"current_terms_version": "",
"is_superuser": false,
"terms_acceptance_required": false,
"timezone": "UTC"
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Example generated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}