Request Email Change
POST
/api/users/me/email/change
const url = 'https://example.com/api/users/me/email/change';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"current_password":"example","new_email":"hello@example.com"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/users/me/email/change \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "current_password": "example", "new_email": "hello@example.com" }'Request a change of the current user’s email address (Fable F1).
Requires the current password (re-auth, so a hijacked idle tab can’t silently redirect the account’s email) and does NOT take effect until the NEW address is verified via /users/me/email/change/confirm — email is the anchor future subscription/billing records key off, so a change that skipped verification would be a billing-hijack vector.
Authorizations
Section titled “ Authorizations ”Request Bodyrequired
Section titled “ Request Bodyrequired ” Media type application/json
EmailChangeRequest
Request a pending email change — sends a verification link to the NEW address; the change does not take effect until confirmed.
object
current_password
required
Current Password
string
new_email
required
New Email
string format: email
Example generated
{ "current_password": "example", "new_email": "hello@example.com"}Responses
Section titled “ Responses ”Successful Response
Media type application/json
Example generated
exampleValidation 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" } ]}