Update Current User Profile
PATCH
/api/users/me
const url = 'https://example.com/api/users/me';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"email":"example","full_name":"example","password":"example","timezone":"UTC","username":"example"}'};
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://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).
Authorizations
Section titled “ Authorizations ”Request Bodyrequired
Section titled “ Request Bodyrequired ” 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.
Responses
Section titled “ Responses ”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
id
required
Id
string format: uuid
is_active
required
Is Active
boolean
is_superuser
Is Superuser
boolean
is_verified
required
Is Verified
boolean
terms_acceptance_required
Terms Acceptance Required
boolean
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" } ]}