---
title: "Reset password using a secure token from password recovery email."
method: POST
path: "/api/v1/user/reset-password"
---

# Reset password using a secure token from password recovery email.

`POST /api/v1/user/reset-password`

**Rate Limited**: Subject to password recovery rate limits (configurable)
**Access**: Public endpoint - no authentication required
**Security**: Token-based authentication, tokens expire after 1 hour

**Request Body Schema**:
```json
{
  "token": "secure-reset-token-from-email",
  "password": "new-secure-password"
}
```

**Password Requirements**:
- Minimum 8 characters
- Must contain at least one uppercase letter
- Must contain at least one lowercase letter
- Must contain at least one digit

**Success Response Schema**:
```json
{
  "data": {
    "message": "Password reset successful"
  }
}
```

**Security Features**:
- Tokens are single-use (marked as used after successful reset)
- Tokens expire after 1 hour
- Rate limiting prevents brute force attacks
- Password strength validation enforced

**Error Responses**:
- `400 Bad Request`: Missing token or password
- `404 Not Found`: Invalid or expired token
- `422 Unprocessable Entity`: Password doesn't meet requirements
- `429 Too Many Requests`: Rate limit exceeded
- `500 Internal Server Error`: System error

## Request body

- object

## Response `200`

Success

- object

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.dev/trends/apis/trends-earth-api.md) · [All operations](https://skmtc.dev/trends/apis/trends-earth-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/trends/trends-earth-api/revisions/6bdbc0b84666/schema)
