Skip to content

Complete a password reset using a token

POST
/v1/auth/reset-password
curl --request POST \
--url https://api.aetherpush.com/v1/auth/reset-password \
--header 'Content-Type: application/json' \
--data '{ "token": "AbCdEf1234567890XyZ", "password": "a-new-strong-password-99" }'

Resets the account password using a token received via the password-reset email. The password change and the teardown of every session and CLI login commit in one transaction. The second factor is deliberately left untouched, so a stolen mailbox stops at the MFA challenge; mfa_setup_deadline is not cleared either.

Media typeapplication/json
object
token
required

Token received via the password-reset email link.

string
password
required
string format: password
>= 12 characters

Example

{
"token": "AbCdEf1234567890XyZ",
"password": "a-new-strong-password-99"
}

Password reset successful. Sessions and CLI logins signed out.

Media typeapplication/json
object
message
required
string
evicted
required

Always false. The reset signs out sessions and CLI logins but never removes a second factor: a stolen mailbox stops at the MFA challenge. Evicting a factor is a separate, step-up-gated action from an authenticated session. The field is kept so an older dashboard can localize from what the server did.

boolean

Example

{
"message": "Password reset successfully. All sessions and CLI logins have been signed out. Your other sign-in methods were not changed. Please log in again.",
"evicted": false
}

Token or password missing, weak password, or invalid/expired token.

Media typeapplication/json
One of:
Error

Standard error envelope. code is the stable machine identifier for client branching and i18n. The wording of error is a human-readable fallback and is not part of the contract. Specialized responses keep narrower code enums where clients already branch on them.

object
error
required

Human-readable error message.

string
code
required

Stable machine code. Prefer this over matching on error. The values this API can answer with are listed in the ApiErrorCode schema of the raw document at https://api.aetherpush.com/openapi.yaml. The field stays an open string here so that a release adding a value does not invalidate this response.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string

Examples

Missing token or password

{
"error": "Token and new password are required.",
"code": "token_and_password_required",
"requestId": "req_abc123"
}

Too many password reset attempts from this IP.

Media typeapplication/json
Error

Standard error envelope. code is the stable machine identifier for client branching and i18n. The wording of error is a human-readable fallback and is not part of the contract. Specialized responses keep narrower code enums where clients already branch on them.

object
error
required

Human-readable error message.

string
code
required

Stable machine code. Prefer this over matching on error. The values this API can answer with are listed in the ApiErrorCode schema of the raw document at https://api.aetherpush.com/openapi.yaml. The field stays an open string here so that a release adding a value does not invalidate this response.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string

Example

{
"error": "The requested resource was not found.",
"code": "not_found",
"requestId": "req_abc123"
}

Internal server error.

Media typeapplication/json
Error

Standard error envelope. code is the stable machine identifier for client branching and i18n. The wording of error is a human-readable fallback and is not part of the contract. Specialized responses keep narrower code enums where clients already branch on them.

object
error
required

Human-readable error message.

string
code
required

Stable machine code. Prefer this over matching on error. The values this API can answer with are listed in the ApiErrorCode schema of the raw document at https://api.aetherpush.com/openapi.yaml. The field stays an open string here so that a release adding a value does not invalidate this response.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string

Example

{
"error": "The requested resource was not found.",
"code": "not_found",
"requestId": "req_abc123"
}