Skip to content

Request a password-reset email

POST
/v1/auth/forgot-password
curl --request POST \
--url https://api.aetherpush.com/v1/auth/forgot-password \
--header 'Content-Type: application/json' \
--data '{ "email": "adrian@aetherpush.com" }'

Initiates a password-reset flow. To prevent enumeration of registered emails, the response is the same generic message whether or not the email matches an account.

Rate limited to 3 requests per IP per 60 minutes.

Media typeapplication/json
object
email
required
string format: email
Example
{
"email": "adrian@aetherpush.com"
}

Generic confirmation message.

Media typeapplication/json

Generic response with a single human-readable message field. Used by password-reset and resend-verification flows where the server returns a generic message regardless of whether the target account exists, to prevent enumeration attacks.

object
message
required
string
Example
{
"message": "If an account with that email exists, a password reset link has been sent."
}

Email missing.

Media typeapplication/json
object
error
required

Human-readable error message.

string
requestId

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

string
Example
{
"error": "Email is required.",
"requestId": "req_abc123"
}

Too many password-reset requests.

Media typeapplication/json

Returned with HTTP 429 when an endpoint-specific rate limit is hit. retryAfterSeconds indicates how long the client should wait before retrying.

object
error
required
string
retryAfterSeconds
integer
>= 1
requestId
string
Example
{
"error": "Too many password reset requests. Please try again later.",
"retryAfterSeconds": 3600,
"requestId": "req_abc123"
}

Internal server error.

Media typeapplication/json
object
error
required

Human-readable error message.

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.",
"requestId": "req_abc123"
}