Start here. This is the direct spoken answer to practice first.
Why this question matters
Password reset is a sensitive auth workflow because it can become account takeover if token handling or enumeration protection is weak.
The API should accept an email and always return a generic response such as if the account exists, an email will be sent. It generates a high-entropy reset token, stores only a hash or one-time token record with expiration, and sends the raw token through email. When the user submits the token and new password, the API verifies the token, updates the password hash, and invalidates the token.