---
title: "Regenerate Recovery Codes"
method: POST
path: "/auth/mfa/recovery-codes/regenerate"
tags: ["Auth"]
---

# Regenerate Recovery Codes

`POST /auth/mfa/recovery-codes/regenerate`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/auth/mfa/recovery-codes/regenerate`
- Auth: HTTP bearer

Mint a fresh batch of recovery codes — invalidates the old set.

## Headers

- `API-Version` '1'

## Request body

- PasswordReauthRequest: POST body for /auth/mfa/disable and /auth/mfa/recovery-codes/regenerate. Re-authentication with the password (which they just supplied at login) is a deliberately lower bar than a fresh MFA step-up — that lands in Phase 3.
  - `password` string, required

## Response `200`

Successful Response

- RecoveryCodesResponse: Body returned by /auth/mfa/recovery-codes/regenerate. Plaintext codes are returned **once** here and never persisted plaintext anywhere.
  - `codes` string[], required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/totalparks/apis/total-parks-public-api.md) · [All operations](https://skmtc.dev/totalparks/apis/total-parks-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/totalparks/apis/total-parks-public-api/revisions/dcb4c822e2c6?raw)
