Skip to content

Request Email Change

POST
/api/users/me/email/change
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.

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"
}

Successful Response

Media type application/json
Example generated
example

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"
}
]
}