
# E-Mail-Adresse hinzufügen

`POST /fapi/v1/me/emails` · wird vom Anmelde-Host der Umgebung aufgerufen

Fügt dem authentifizierten Benutzer eine E-Mail-Adresse als nicht bestätigte, nicht primäre Adresse hinzu und sendet an sie einen Bestätigungslink. Die Adresse ist nutzbar, sobald der Benutzer den Link öffnet. Jede angenommene Anfrage antwortet mit `202` ohne Body, auch wenn die Adresse bereits zu diesem Benutzer gehört. Die Antwort zeigt nie, ob die Adresse bei einem anderen Konto verwendet wird. Ein Benutzer kann höchstens 10 Adressen haben, einschließlich der primären. Erforderlich ist das Cookie `__Host-idp_session` des authentifizierten Benutzers. Fehlt das Cookie, ist es abgelaufen oder widerrufen, wird `401 unauthenticated` zurückgegeben. Eine First-Party-Anwendung auf einem anderen Origin kann stattdessen ihr Front-API-Zugriffstoken senden (`Authorization: DPoP <token>` mit einem DPoP-Proof; siehe [Front-API-Zugriffstoken](/docs/api/fapi/front-api-token)).

Die Sitzung muss in den letzten 5 Minuten bestätigt worden sein. Hat der Benutzer einen zweiten Faktor, muss die Sitzung zusätzlich mit einem zweiten Faktor (`urn:idp:acr:mfa`) geöffnet worden sein.

## Anfrage

Header:

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Idp-Client` | ja | SDK-Kennung. |
| `Origin` | ja | Muss genau `https://<sign-in host>` sein. |
| `Content-Type` | ja | `application/json`. |

Body:

| Feld | Typ | Erforderlich | Beschreibung |
| --- | --- | --- | --- |
| `email` | string | ja | Die hinzuzufügende Adresse (höchstens 320 Zeichen). |

## Antwort

`202 Accepted`, ohne Body.

## Fehler

| Status | Code | Wann |
| --- | --- | --- |
| 400 | `malformed_request` | Der Body ist kein gültiges JSON. |
| 400 | `unknown_field` | Der Body enthält ein anderes Feld als `email`. |
| 401 | `unauthenticated` | Kein gültiges Sitzungs-Cookie. |
| 401 | `step_up_required` | Die Sitzung wurde in den letzten 5 Minuten nicht bestätigt oder ein zweiter Faktor ist erforderlich; bestätigen Sie erneut mit `max_age=300` (und gegebenenfalls `acr_values`) im Header `WWW-Authenticate`. |
| 403 | `origin_not_allowed` | `Origin` fehlt oder ist falsch. |
| 409 | `email_limit_reached` | Der Benutzer hat bereits 10 E-Mail-Adressen. |
| 413 | `payload_too_large` | Der Body ist zu groß. |
| 415 | `unsupported_media_type` | `Content-Type` ist nicht `application/json`. |
| 422 | `validation_failed` | `email` fehlt. |
| 422 | `email_invalid` | `email` ist keine gültige E-Mail-Adresse. |
| 422 | `email_domain_not_allowed` | Die Umgebung erlaubt Adressen in dieser Domain nicht. |
| 429 | `verification_rate_limited` | Es wurden kürzlich zu viele Bestätigungsnachrichten gesendet; versuchen Sie es später erneut. |

## Beispiel

```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"}'
```

## Personenbezogene Daten

Dieser Endpunkt verarbeitet personenbezogene Daten: Profil des Endbenutzers. [Personenbezogene Daten in den KeenAuth-APIs](/docs/policies/personal-data) beschreibt, was gespeichert wird, wie lange es aufbewahrt wird und wie es gelöscht wird. Senden Sie in keinem Feld besondere Kategorien personenbezogener Daten (Gesundheit, biometrische Daten, Religion, politische Meinungen, sexuelle Orientierung).
