
# 관리자가 이메일 주소를 확인됨으로 표시

`POST /v1/users/{user_id}/emails/{email_id}:verify` · 권한 `users:write`

관리자의 권한으로 해당 주소를 확인됨으로 표시합니다. 사용자에게 코드나 링크가 전송되지 않으며, 확인 방법은 `admin_api`로 저장됩니다. 따라서 사용자가 해당 메일함을 실제로 소유한다는 증명이 되지 않습니다. 직접 주소를 확인하지 않은 경우에는 `:send-verification`을 사용하는 것이 좋습니다. 주소가 이미 확인되어 있으면 아무것도 기록되지 않고 `200`이 반환됩니다. 같은 환경의 다른 계정에 있는 같은 주소의 미확인 항목은 제거됩니다. 이 변경은 API 키를 행위자로 하여 관리 감사 로그에 `user.email_verified`로 기록되며, `user.updated` 이벤트를 발생시킵니다.

## 요청

| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
| `user_id` | 경로 | 예 | 사용자 ID이며 접두사는 `usr_`입니다. |
| `email_id` | 경로 | 예 | 이메일 행의 ID(내부 UUID, 소문자, 하이픈 포함)이며 `GET /v1/users/{user_id}/emails`가 반환한 값입니다. |

요청 본문은 필요하지 않습니다(빈 본문 또는 `{}`를 허용합니다).

## 응답

업데이트된 이메일 행과 함께 `200 OK`가 반환됩니다. `users:read_pii` 권한이 없으면 주소는 마스킹됩니다(`a***@e***.com`).

```json
{
  "id": "0191f0a0-3333-7444-8555-666666666666",
  "email": "ada@example.com",
  "verified": true,
  "primary": false,
  "created_at": "2026-01-15T09:30:00Z"
}
```

## 오류

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

| HTTP | `code` | 발생 조건 |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | 본문이 올바른 JSON이 아니거나, 비어 있지도 않고 `{}`도 아닙니다. |
| 404 | `not_found` | 이 환경에 사용자 또는 이메일 행이 없거나, 이메일이 이 사용자에게 속하지 않거나, ID 형식이 잘못되었습니다. |
| 401 | `unauthenticated` | API 키가 없거나, 잘못되었거나, 취소되었습니다. |
| 403 | `insufficient_permissions` | 키에 `users:write` 권한이 없습니다. |
| 429 | `rate_limited` | 요청 한도를 초과했습니다. `Retry-After`를 준수하십시오. |
| 503 | `service_unavailable` | 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |

## 예시

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/emails/0191f0a0-3333-7444-8555-666666666666:verify \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

## 개인 데이터

이 엔드포인트는 개인 데이터를 포함합니다: 엔드 사용자 프로필. [KeenAuth API의 개인 데이터](/docs/policies/personal-data)에서 저장되는 항목, 보관 기간, 삭제 방법을 설명합니다. 어떤 필드에도 특별 범주의 개인 데이터(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.
