---
title: "Create a new organization domain."
method: POST
path: "/organizations/{organization_id}/domains"
tags: ["Organization Domains"]
---

# Create a new organization domain.

`POST /organizations/{organization_id}/domains`

Creates a new organization domain. By default the domain is verified, but can be optionally set to unverified.

## Path parameters

- `organization_id` string, required

## Request body

- object
  - `name` string — The name of the new domain
  - `enrollment_mode` string — The enrollment_mode for the new domain. This can be `automatic_invitation`, `automatic_suggestion`, `manual_invitation` or `enterprise_sso`
  - `verified` boolean, nullable — The status of domain's verification. Defaults to true

## Response `200`

An organization domain

- OrganizationDomain — An organization domain
  - `object` 'organization_domain', required — String representing the object's type. Objects of the same type share the same value. Always `organization_domain`
  - `id` string, required — Unique identifier for the organization domain
  - `organization_id` string, required — Unique identifier for the organization
  - `name` string, required — Name of the organization domain
  - `enrollment_mode` 'manual_invitation' | 'automatic_invitation' | 'automatic_suggestion' | 'enterprise_sso', required — Mode of enrollment for the domain
  - `affiliation_email_address` string, nullable, required — Affiliation email address for the domain, if available.
  - `affiliation_verification` OrganizationDomainVerification, required — The verification object from an organization domain
    - `status` string, required — Status of the verification. It can be `unverified`, `verified`, `failed`, or `expired`.
    - `strategy` string, required — Name of the strategy used to verify the domain
    - `attempts` integer, nullable, required — How many attempts have been made to verify the domain
    - `expire_at` integer, nullable, required — Unix timestamp of when the verification will expire
    - `verified_at` integer, nullable, required — Unix timestamp of when ownership was verified. Only populated on `ownership_verification`; null on `affiliation_verification`.
  - `ownership_verification` OrganizationDomainVerification, required — The verification object from an organization domain
    - `status` string, required — Status of the verification. It can be `unverified`, `verified`, `failed`, or `expired`.
    - `strategy` string, required — Name of the strategy used to verify the domain
    - `attempts` integer, nullable, required — How many attempts have been made to verify the domain
    - `expire_at` integer, nullable, required — Unix timestamp of when the verification will expire
    - `verified_at` integer, nullable, required — Unix timestamp of when ownership was verified. Only populated on `ownership_verification`; null on `affiliation_verification`.
  - `verification` OrganizationDomainVerification, required — The verification object from an organization domain
    - `status` string, required — Status of the verification. It can be `unverified`, `verified`, `failed`, or `expired`.
    - `strategy` string, required — Name of the strategy used to verify the domain
    - `attempts` integer, nullable, required — How many attempts have been made to verify the domain
    - `expire_at` integer, nullable, required — Unix timestamp of when the verification will expire
    - `verified_at` integer, nullable, required — Unix timestamp of when ownership was verified. Only populated on `ownership_verification`; null on `affiliation_verification`.
  - `total_pending_invitations` integer, required — Total number of pending invitations associated with this domain
  - `total_pending_suggestions` integer, required — Total number of pending suggestions associated with this domain
  - `public_organization_data` OrganizationInvitationPublicOrganizationData
    - `id` string, required
    - `name` string, required
    - `slug` string, required
    - `image_url` string
    - `has_image` boolean, required
  - `created_at` integer, required — Unix timestamp when the domain was created
  - `updated_at` integer, required — Unix timestamp of the last update to the domain

## Other responses

- `400` — Request was not successful
- `403` — Authorization invalid
- `404` — Resource not found
- `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/cf036e7951d3/schema)
