
# メールアドレスに認証メールを送信

`POST /v1/users/{user_id}/emails/{email_id}:send-verification` · 権限 `users:write`

ユーザーのメールアドレス 1 件に対して認証メールを送信します。`email_id` は内部 UUID(小文字、ハイフン区切り)です。レスポンスには認証リクエストの有効期限が含まれます。コードやリンクは返されません。任意のボディでは、メールの言語のみを選択できます。

## リクエスト

| パラメーター | 指定場所 | 必須 | 説明 |
|---|---|---|---|
| `user_id` | path | はい | ユーザー ID。接頭辞は `usr_`。 |
| `email_id` | path | はい | メールアドレスのレコードの ID(内部 UUID、小文字、ハイフン区切り)。 |

任意のボディ:

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `locale` | string | いいえ | メールの BCP 47 言語タグ(例: `tr`、`pt-BR`)。既定値はユーザーまたは環境の言語です。 |

## レスポンス

`200 OK`。`expires_at` は認証リクエストの有効期限です。

```json
{
  "expires_at": "2026-01-16T09:30:00Z"
}
```

## エラー

すべてのエラーは、安定した `code` を含む `application/problem+json` のボディで返されます。

| HTTP | `code` | 発生条件 |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | ボディが有効な JSON ではない、または未知のフィールドがある。 |
| 409 | `conflict` | メールアドレスはすでに認証済みです。 |
| 415 | `unsupported_media_type` | `Content-Type: application/json` を指定せずにボディを送信した。 |
| 422 | `validation_failed` | `locale` が有効な BCP 47 言語タグではない、またはフィールドの型が正しくない。 |
| 404 | `not_found` | ユーザーまたはメールアドレスのレコードがこの環境に存在しない、メールアドレスがこのユーザーのものではない、または ID の形式が正しくない。 |
| 401 | `unauthenticated` | API キーが未指定、無効、または取り消されている。 |
| 403 | `insufficient_permissions` | キーに `users:write` 権限がない。 |
| 429 | `rate_limited` | API のレート制限、またはユーザーごとのメール送信上限を超えた。`Retry-After` に従ってください。 |
| 503 | `service_unavailable` | 依存するサービスが一時的に利用できない。後で再試行してください。 |

## 例

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/emails/0191f0a0-3333-7444-8555-666666666666:send-verification \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"locale": "en"}'
```

## 個人データ

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