Request a password-reset email
const url = 'https://api.aetherpush.com/v1/auth/forgot-password';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"email":"adrian@aetherpush.com"}'};
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.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.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Example
{ "email": "adrian@aetherpush.com"}Responses
Section titled “Responses”Generic confirmation message.
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
Example
{ "message": "If an account with that email exists, a password reset link has been sent."}Email missing.
object
Human-readable error message.
Unique identifier for the request, also exposed as the X-Request-Id response header.
Example
{ "error": "Email is required.", "requestId": "req_abc123"}Too many password-reset requests.
Returned with HTTP 429 when an endpoint-specific rate limit is hit.
retryAfterSeconds indicates how long the client should wait
before retrying.
object
Example
{ "error": "Too many password reset requests. Please try again later.", "retryAfterSeconds": 3600, "requestId": "req_abc123"}Internal server error.
object
Human-readable error message.
Unique identifier for the request, also exposed as the X-Request-Id response header.
Example
{ "error": "The requested resource was not found.", "requestId": "req_abc123"}