---
title: "Complete recovery and rotate root API key"
method: POST
path: "/v1/recovery/complete"
tags: ["recovery"]
---

# Complete recovery and rotate root API key

`POST /v1/recovery/complete`

## Request

- Base URL: `https://api.lithtrix.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.lithtrix.ai/v1/recovery/complete`
- Auth: none declared

Requires ``intent_id`` of an elapsed, un-vetoed public intent plus recovery-key Ed25519 signature over ``canonical_recovery_complete_bytes_v1``. Rotates the root API key hash and sets ``recovered``; does not rotate the passport or open a new custody epoch.

## Request body

- RecoveryCompleteRequest
  - `agent_id` string, required
  - `challenge_id` string, required
  - `intent_id` string, required
  - `signature` string, required: RFC4648 base64 raw Ed25519 recovery-key signature
  - `new_api_key` string, nullable: Optional new root ltx_* key to store. When omitted, the server generates one and returns it once (mirrors POST /v1/keys/rotate semantics).

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/lithtrix/apis/lithtrix-api.md) · [All operations](https://skmtc.dev/lithtrix/apis/lithtrix-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lithtrix/apis/lithtrix-api/revisions/be5de51bf4f8?raw)
