
# 사용자의 계정 복구 시작

`POST /v1/users/{user_id}:start-recovery` · 권한 `user-credentials:write`

대기 기간 없이 복구 링크(24시간 동안 유효)를 사용자의 기본 이메일로 보냅니다. 이는 `admin_only` 복구 모드의 경로입니다. 요청은 `ready` 상태로 바로 열리며, 열려 있는 복구 요청은 같은 트랜잭션에서 대체됩니다(`superseded`). 링크는 반환되지 않습니다. 선택 본문은 이메일 언어만 지정합니다. 재시도를 안전하게 하려면 `Idempotency-Key` 헤더를 보내십시오.

## 요청

| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
| `user_id` | 경로 | 예 | 사용자 ID이며 `usr_` 접두사가 붙습니다. |

선택 본문:

| 필드 | 유형 | 필수 | 설명 |
|---|---|---|---|
| `locale` | 문자열 | 아니요 | 이메일의 BCP 47 언어 태그이며, 예를 들어 `tr` 또는 `pt-BR`입니다. 기본값은 사용자 또는 환경의 언어입니다. |

## 응답

`200 OK`. `request_id`는 복구 요청을 식별하며(접두사 `arq_`), `superseded`는 열려 있던 요청이 대체되었는지 여부를 나타냅니다.

```json
{
  "request_id": "arq_0a1b2c3d4e5f6g7h8j9k0m1n2p",
  "expires_at": "2026-01-16T09:30:00Z",
  "superseded": false
}
```

## 오류

모든 오류는 고정된 `code`를 포함한 `application/problem+json` 본문으로 반환됩니다.

| HTTP | `code` | 발생 조건 |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | 본문이 올바른 JSON이 아니거나 알 수 없는 필드가 있습니다. |
| 409 | `conflict` | 환경 설정에서 계정 복구가 `disabled`이거나 사용자에게 기본 이메일이 없습니다. |
| 415 | `unsupported_media_type` | `Content-Type: application/json` 없이 본문을 보냈습니다. |
| 422 | `validation_failed` | `locale`이 올바른 BCP 47 언어 태그가 아니거나 필드의 유형이 잘못되었습니다. |
| 404 | `not_found` | 이 환경에 사용자가 없거나 ID 형식이 잘못되었습니다. |
| 401 | `unauthenticated` | API 키가 없거나 올바르지 않거나 취소되었습니다. |
| 403 | `insufficient_permissions` | 키에 `user-credentials:write` 권한이 없습니다. |
| 429 | `rate_limited` | 요청 한도를 초과했습니다. `Retry-After`를 준수하십시오. |
| 503 | `service_unavailable` | 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |

## 예제

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p:start-recovery \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"locale": "en"}'
```
