ユーザーのアカウントリカバリーを開始
POST /v1/users/{user_id}:start-recovery · 権限 user-credentials:write
待機期間なしで、リカバリーリンク(有効期間 24 時間)をユーザーのプライマリメールアドレスに送信します。これは admin_only リカバリーモードの経路です。リクエストは直接 ready として開始され、未完了のリカバリーリクエストは同じトランザクション内で置き換えられます(superseded)。リンクが返されることはありません。省略可能なボディはメールの言語のみを選択します。再試行を安全に行うには Idempotency-Key ヘッダーを送信してください。
リクエスト
| パラメータ | 位置 | 必須 | 説明 |
|---|---|---|---|
user_id |
path | はい | ユーザー ID。usr_ で始まります。 |
省略可能なボディ:
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
locale |
string | いいえ | メールの BCP 47 言語タグ(例: tr や pt-BR)。省略時はユーザーまたは環境の言語が使われます。 |
レスポンス
200 OK。request_id はリカバリーリクエストを識別します(接頭辞 arq_)。superseded は、未完了のリクエストが置き換えられたかどうかを示します。
{
"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 |
依存先が一時的に利用できません。しばらくしてから再試行してください。 |
例
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"}'