---
title: "Request password reset OTP"
method: POST
path: "/internal/api/auth/forgot-password"
tags: ["USERS"]
---

# Request password reset OTP

`POST /internal/api/auth/forgot-password`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/auth/forgot-password`
- Auth: none declared

Initiate the password reset process by sending an OTP to the user's email.

    The system will:
    1. Validate the email address
    2. Generate a secure OTP
    3. Send the OTP via email
    4. Return a success message (regardless of email existence)

## Request body

- ForgotPasswordRequest
  - `email` string, email, required: Email address (max 100 characters)
  - `recaptcha_token` string, nullable: Google reCAPTCHA token (v3 or v2)
  - `recaptcha_version` 'v2' | 'v3'

## Response `200`

If the email exists, an OTP will be sent

- ForgotPasswordResponse
  - `message` string

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/signalshq/apis/signals-api.md) - [All operations](https://skmtc.dev/signalshq/apis/signals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalshq/apis/signals-api/revisions/2c22af3b5576?raw)
