---
title: "Create an email address"
method: POST
path: "/email_addresses"
tags: ["Email Addresses"]
---

# Create an email address

`POST /email_addresses`

Create a new email address

## Request body

- object
  - `user_id` string, required — The ID representing the user
  - `email_address` string, required — The new email address. Must adhere to the RFC 5322 specification for email address format.
  - `verified` boolean, nullable — When created, the email address will be marked as verified.
  - `primary` boolean, nullable — Create this email address as the primary email address for the user. Default: false, unless it is the first email address.
  - `notify_primary_email_address_changed` boolean, nullable — If set to `true` and the email address is created as the user's new primary, the previous primary email address is notified of the change. By default, no notification is sent.

## Response `200`

Success

- EmailAddress
  - `id` string
  - `object` 'email_address', required — String representing the object's type. Objects of the same type share the same value.
  - `email_address` string, required
  - `reserved` boolean, required
  - `verification` union, required
    - object
      - `object` 'verification_otp'
      - `status` 'unverified' | 'verified' | 'failed' | 'expired', required
      - `strategy` 'phone_code' | 'email_code' | 'reset_password_email_code', required
      - `attempts` integer, nullable, required
      - `expire_at` integer, nullable, required
      - `channel` string, nullable — The delivery channel of the code (phone codes only).
      - `verified_at_client` string, nullable
    - object
      - `object` 'verification_admin'
      - `status` 'verified', required
      - `strategy` 'admin', required
      - `attempts` integer, nullable, required
      - `expire_at` integer, nullable, required
      - `verified_at_client` string, nullable
    - object
      - `object` 'verification_from_oauth'
      - `status` 'unverified' | 'verified', required
      - `strategy` string, required
      - `error` object, nullable
        - `message` string, required
        - `long_message` string, required
        - `code` string, required
        - `meta` object
      - `expire_at` integer, nullable, required
      - `attempts` integer, nullable, required
      - `verified_at_client` string, nullable
    - object
      - `object` 'verification_ticket'
      - `status` 'unverified' | 'verified' | 'expired', required
      - `strategy` 'ticket', required
      - `attempts` integer, nullable, required
      - `expire_at` integer, nullable, required
      - `verified_at_client` string, nullable
    - object
      - `object` 'verification_saml'
      - `status` 'unverified' | 'verified' | 'failed' | 'expired' | 'transferable', required
      - `strategy` 'saml', required
      - `external_verification_redirect_url` string, nullable
      - `error` object, nullable
        - `message` string, required
        - `long_message` string, required
        - `code` string, required
        - `meta` object
      - `expire_at` integer, nullable
      - `attempts` integer, nullable, required
      - `verified_at_client` string, nullable
    - object
      - `object` 'verification_email_link'
      - `status` 'unverified' | 'verified' | 'failed' | 'expired', required
      - `strategy` 'email_link', required
      - `attempts` integer, nullable, required
      - `expire_at` integer, nullable, required
      - `verified_at_client` string, nullable
    - object
      - `object` 'verification_scim'
      - `status` 'verified', required
      - `strategy` 'scim', required
      - `attempts` integer, nullable, required
      - `expire_at` integer, nullable, required
  - `linked_to` IdentificationLink[], required
    - `type` string, required
    - `id` string, required
  - `matches_sso_connection` boolean — Indicates whether this email address domain matches an active enterprise connection.
  - `created_at` integer, required — Unix timestamp of creation
  - `updated_at` integer, required — Unix timestamp of creation

## Other responses

- `400` — Request was not successful
- `401` — Authentication invalid
- `403` — Authorization invalid
- `404` — Resource not found
- `409` — Conflict
- `422` — Invalid request parameters

---

[API](https://skmtc.net/clerk/apis/clerk-backend-api.md) · [All operations](https://skmtc.net/clerk/apis/clerk-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clerk/clerk-backend-api/revisions/75df3a43fcb2/schema)
