ユーザーに未検証のセカンダリメールアドレスを追加
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 における個人データでは、保存される内容、保存期間、削除方法について説明しています。いずれのフィールドにも、特別な種類の個人データ(健康、生体情報、宗教、政治的意見、性的指向)を送信しないでください。