Skip to content

Start changing your sign-in email

POST
/api/v1/me/email-change
curl --request POST \
--url https://api.deploybase.eu/api/v1/api/v1/me/email-change \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--header 'X-Deploybase-Step-Up: example' \
--data '{ "new_email": "sam@new-mailbox.eu" }'

Mails a 6-character code to the new address; nothing changes until the code is confirmed. The answer is the same whether or not the address is already in use (the new inbox gets the explanation instead of a code). Replaces any change in progress. Needs a fresh re-authentication: send the grant_token from POST /api/v1/me/step-up in the X-Deploybase-Step-Up header. The grant is spent once the change is stored (a refused address or a rate limit keeps it for a retry within its window). Needs a signed-in person: API keys are refused. Limited to 3 per hour and 10 per day per person, and 10 per hour per IP.

X-Deploybase-Step-Up
required
string

Grant_token from POST /api/v1/me/step-up (single use)

The new address

Media type application/json
object
new_email
string

Example

sam@new-mailbox.eu

Accepted

Media type application/json
object
data
meta
object
request_id
string
timestamp
string
trace_id
string
data
object
expires_at
string
pending_email
string

Example

{
"data": {
"expires_at": "2026-10-03T13:00:00Z",
"pending_email": "sam@new-mailbox.eu"
}
}

Malformed body, INVALID_EMAIL (details.reason=non_ascii for non-ASCII addresses) or SAME_EMAIL

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Unauthorized

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

REAUTH_REQUIRED (no, foreign, expired or already used grant token), STEP_UP_UNSUPPORTED, HUMAN_SESSION_REQUIRED or EMAIL_MANAGED_BY_SSO (your team signs in through its own identity provider, which manages your address)

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
details
object
required
string
Allowed values: any mfa

Example

{
"details": {
"required": "any"
}
}

EMAIL_CHANGE_FINISHING: your previous change is still being finished; retry shortly

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Too many requests; see Retry-After

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Internal Server Error

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Live 174db30c built