사용자에게 미인증 보조 이메일 주소 추가
POST /v1/users/{user_id}/emails · 권한 users:write
사용자에게 인증되지 않은 보조 이메일 주소를 추가합니다. 주소는 저장 전에 정규화됩니다. 사용자가 이미 같은 주소를 가지고 있으면 행을 새로 쓰지 않고 기존 행을 반환합니다(해당 행은 인증되었거나 기본 주소일 수 있습니다). 따라서 요청을 반복해도 안전합니다. 새 행은 API 키를 행위자로 하여 user.email_added로 관리 감사 로그에 기록되며, 주소 자체는 감사 기록에 기록되지 않습니다. 주소를 인증하려면 POST /v1/users/{user_id}/emails/{email_id}:send-verification으로 인증 이메일을 보내거나 :verify로 인증됨 표시를 하십시오.
요청
| 매개변수 | 위치 | 필수 여부 | 설명 |
|---|---|---|---|
user_id |
path | 예 | 사용자 ID이며 usr_ 접두사가 붙습니다. |
| 필드 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
email |
string | 예 | 주소이며 최대 320자입니다. |
응답
201 Created와 이메일 행을 반환합니다. users:read_pii 권한이 없으면 주소는 마스킹됩니다(a***@e***.com).
{
"id": "0191f0a0-3333-7444-8555-666666666666",
"email": "ada@example.com",
"verified": false,
"primary": false,
"created_at": "2026-01-15T09:30:00Z"
}
오류
모든 오류는 안정적인 code가 포함된 application/problem+json 본문으로 반환됩니다.
| HTTP | code |
발생 조건 |
|---|---|---|
| 400 | malformed_request, unknown_field |
본문이 유효한 JSON이 아니거나 알 수 없는 필드가 있습니다. |
| 409 | conflict |
이 환경의 다른 사용자가 해당 주소를 인증했습니다(errors[]: /email, email_taken). |
| 409 | email_limit_reached |
사용자가 이미 주소 10개를 가지고 있습니다. |
| 415 | unsupported_media_type |
Content-Type: application/json 없이 본문을 보냈습니다. |
| 422 | validation_failed |
email이 없거나 비어 있거나, 320자를 넘거나, 올바른 주소가 아니거나, 타입이 잘못되었습니다. |
| 404 | not_found |
이 환경에 사용자가 없거나, 삭제 중이거나, ID 형식이 잘못되었습니다. |
| 401 | unauthenticated |
API 키가 없거나 잘못되었거나 취소되었습니다. |
| 403 | insufficient_permissions |
키에 users:write 권한이 없습니다. |
| 429 | rate_limited |
요청 한도를 초과했습니다. Retry-After를 준수하십시오. |
| 503 | service_unavailable |
종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |
예시
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/emails \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "ada@example.com"}'
개인정보
이 엔드포인트는 개인정보(최종 사용자 프로필)를 다룹니다. KeenAuth API의 개인정보에서 저장되는 항목, 보관 기간, 삭제 방법을 확인할 수 있습니다. 어떤 필드에도 특수 범주의 개인정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.