Make an email address primary

POST /fapi/v1/me/emails/{email_id}:set-primary · called from the environment's sign-in host

Makes one of the authenticated user's verified email addresses the primary one. An unverified address cannot become primary; verify it first. After the change, the previous primary address and the user's other verified addresses receive a security notification with a "this wasn't me" link that opens account recovery. If the address is already primary, the answer is still 204 and nothing changes or is sent. Requires the authenticated user's __Host-idp_session cookie; if the cookie is missing, expired, or revoked, returns 401 unauthenticated. A first-party app on another origin can instead send its front API access token (Authorization: DPoP <token> with a DPoP proof; see Front API access token).

The session must have been verified in the last 5 minutes. If the user has a second factor, the session must also have been opened with a second factor (urn:idp:acr:mfa).

Request

Headers:

Header Required Description
Idp-Client yes SDK identifier.
Origin yes Must be exactly https://<sign-in host>.

email_id: the email address identifier, the same value the management API's /v1/users/{user_id}/emails endpoints use (lowercase UUID).

No body.

Response

204 No Content.

Errors

Status Code When
401 unauthenticated No valid session cookie.
401 step_up_required Session was not verified in the last 5 minutes or a second factor is required; re-verify with max_age=300 (and if applicable, acr_values) in the WWW-Authenticate header.
403 origin_not_allowed Origin is missing or wrong.
404 not_found No such email address for this user.
409 primary_requires_verified The email address is not verified.

Example

curl -X POST https://example.keenauth.app/fapi/v1/me/emails/0190a5c4-1b2c-7d3e-8f40-516273849abc:set-primary \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -b cookies.txt

Personal data

This endpoint carries personal data: end-user profile. Personal data in the KeenAuth APIs describes what is stored, how long it is kept and how it is deleted. Do not send special categories of personal data (health, biometric data, religion, political opinions, sexual orientation) in any field.