Start changing your sign-in email
const url = 'https://api.deploybase.eu/api/v1/api/v1/me/email-change';const options = { method: 'POST', headers: { 'X-Deploybase-Step-Up': 'example', Authorization: '<Authorization>', 'Content-Type': 'application/json' }, body: '{"new_email":"sam@new-mailbox.eu"}'};
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://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.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Header Parameters
Section titled “ Header Parameters ”Grant_token from POST /api/v1/me/step-up (single use)
Request Body
Section titled “ Request Body ”The new address
object
Example
sam@new-mailbox.euResponses
Section titled “ Responses ”Accepted
object
object
object
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
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Unauthorized
object
object
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)
object
object
object
Example
{ "details": { "required": "any" }}EMAIL_CHANGE_FINISHING: your previous change is still being finished; retry shortly
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Too many requests; see Retry-After
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Internal Server Error
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Live 174db30c built