Documentation

Password Management

Reset and change admin passwords

Request Password Reset

Initiate a password reset flow.

Endpoint

POST/auth/admin/password/reset/request

Request a password reset. A reset token will be sent to the admin's email address.

Headers

ParameterTypeRequiredDescription
Content-TypestringYesapplication/json

Request Body- Email address for reset

json
{
  "email": "admin@example.com"
}

Response- Reset initiated

json
{
  "reset_id": "550e8400-e29b-41d4-a716-446655440000",
  "expires_at": "2025-01-14T11:30:00Z",
  "token": "secure_reset_token"
}

Error Responses

StatusCodeDescription
401reset_invalidReset could not be initiated (email not found)
429rate_limit_exceededRate limit: 5/min, 25/day per email/IP

Security Notes

The response is intentionally vague to prevent email enumeration attacks. The same response format is returned regardless of whether the email exists.

Confirm Password Reset

Complete the password reset with a new password.

Endpoint

POST/auth/admin/password/reset/confirm

Complete the password reset by providing the token and new password.

Headers

ParameterTypeRequiredDescription
Content-TypestringYesapplication/json

Request Body- Reset token and new password

json
{
  "token": "secure_reset_token_from_email",
  "new_password": "NewSecurePassword123!"
}

Response- No content on success (HTTP 204)

json

Error Responses

StatusCodeDescription
400validation_failedPassword must be at least 8 characters
401reset_invalidReset token invalid or expired
429reset_lockedToo many failed attempts (5/min, 50/day)

Request Body Parameters

FieldTypeRequiredDescription
tokenstringYesReset token from email
new_passwordstringYesNew password (min 8 characters)

Change Password

Change password while authenticated.

Endpoint

POST/auth/admin/password/change

Change password for the authenticated admin. Requires current password verification.

Headers

ParameterTypeRequiredDescription
AuthorizationstringYesBearer {access_token}
Content-TypestringYesapplication/json

Request Body- Current and new password

json
{
  "current_password": "CurrentPassword123",
  "new_password": "NewSecurePassword456!",
  "mfa_code": "123456"
}

Response- No content on success (HTTP 204)

json

Error Responses

StatusCodeDescription
400validation_failedNew password must be at least 8 characters
401password_change_failedCurrent password incorrect or MFA code invalid

Request Body Parameters

FieldTypeRequiredDescription
current_passwordstringYesCurrent password for verification
new_passwordstringYesNew password (min 8 characters)
mfa_codestringConditionalRequired if MFA is enabled

Password Requirements

Password policy and security requirements.

Requirements

RequirementValue
Minimum length8 characters
Maximum length128 characters
Character typesAny Unicode characters allowed
Reuse policyCannot reuse last 5 passwords

Best Practices

We recommend using a password manager to generate strong, unique passwords. Consider enabling MFA for additional security.