
# メールアドレスの追加

`POST /fapi/v1/me/emails` · 環境のサインインホストから呼び出します

認証済みユーザーにメールアドレスを、未検証かつ主要ではないアドレスとして追加し、そのアドレスに確認用リンクを送信します。ユーザーがリンクを開くと、そのアドレスが利用可能になります。受け付けられたリクエストは、そのアドレスがこのユーザーの既存のものである場合を含め、本文なしの `202` で応答します。応答から、そのアドレスが別のアカウントで使用されているかどうかは分かりません。ユーザーが保持できるアドレスは、主要なアドレスを含めて最大 10 件です。認証済みユーザーの `__Host-idp_session` Cookie が必要です。Cookie がない、期限切れ、または取り消されている場合は、`401 unauthenticated` を返します。別のオリジンにある自社アプリは、代わりにフロント API のアクセストークンを送信できます（DPoP プルーフを添えた `Authorization: DPoP <token>`。[フロント API アクセストークン](/docs/api/fapi/front-api-token)を参照してください）。

セッションは過去 5 分以内に検証されている必要があります。ユーザーが第二要素を持っている場合は、セッションが第二要素（`urn:idp:acr:mfa`）を使って開始されている必要もあります。

## リクエスト

ヘッダー:

| ヘッダー | 必須 | 説明 |
| --- | --- | --- |
| `Idp-Client` | はい | SDK の識別子。 |
| `Origin` | はい | 正確に `https://<sign-in host>` である必要があります。 |
| `Content-Type` | はい | `application/json`。 |

ボディ:

| フィールド | 型 | 必須 | 説明 |
| --- | --- | --- | --- |
| `email` | string | はい | 追加するアドレス（最大 320 文字）。 |

## レスポンス

`202 Accepted`、ボディなし。

## エラー

| ステータス | コード | 発生条件 |
| --- | --- | --- |
| 400 | `malformed_request` | ボディが有効な JSON ではない。 |
| 400 | `unknown_field` | ボディに `email` 以外のフィールドがある。 |
| 401 | `unauthenticated` | 有効なセッション Cookie がない。 |
| 401 | `step_up_required` | セッションが過去 5 分以内に検証されていない、または第二要素が必要。`WWW-Authenticate` ヘッダーで `max_age=300`（該当する場合は `acr_values` も）を指定して再認証してください。 |
| 403 | `origin_not_allowed` | `Origin` がない、または誤っている。 |
| 409 | `email_limit_reached` | ユーザーが既に 10 件のメールアドレスを持っている。 |
| 413 | `payload_too_large` | ボディが大きすぎる。 |
| 415 | `unsupported_media_type` | `Content-Type` が `application/json` ではない。 |
| 422 | `validation_failed` | `email` がない。 |
| 422 | `email_invalid` | `email` が有効なメールアドレスではない。 |
| 422 | `email_domain_not_allowed` | 環境がこのドメインのアドレスを許可していない。 |
| 429 | `verification_rate_limited` | 最近、確認メッセージの送信回数が多すぎる。しばらくしてから再試行してください。 |

## 例

```bash
curl -X POST https://example.keenauth.app/fapi/v1/me/emails \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"email": "ada@example.org"}'
```

## 個人データ

このエンドポイントは個人データ（エンドユーザーのプロフィール）を扱います。[KeenAuth API における個人データ](/docs/policies/personal-data)では、保存される内容、保管期間、削除方法を説明しています。いかなるフィールドにも、特別な種類の個人データ（健康、生体情報、宗教、政治的意見、性的指向）を送信しないでください。
