---
title: "Create Organization"
method: POST
path: "/admin/organizations"
tags: ["organization-admin"]
---

# Create Organization

`POST /admin/organizations`

Create a new organization.

Platform admin only. Creates database records and optionally provisions
an Auth0 organization via Temporal workflow.

## Request body

- CreateOrganizationRequest — Request to create a new organization.
  - `name` string, required — Organization name (internal identifier, lowercase, alphanumeric with underscores/hyphens)
  - `display_name` string, required — Display name shown in UI
  - `config_name` string, required — Config name linking to typed config (use 'default' for self-serve)
  - `email_domains` EmailDomainInput[] — Email domains for this organization
    - `domain` string, required — Email domain (e.g., 'example.com')
  - `auth_methods` AuthMethodInput[] — Authentication methods for this organization
    - `name` string, required — Friendly name for the auth method (e.g., 'Google')
    - `connection_id` string, required — Auth0 connection ID (e.g., 'google-oauth2', 'con_abc123')
  - `provision_auth0` boolean — Create a new Auth0 organization
  - `existing_auth0_org_id` string, nullable — Existing Auth0 organization ID (if not provisioning new)
  - `is_invite_only` boolean — When true, new users can only join via an admin-issued invite link
  - `id` string, nullable — Pre-generated organization UUID for cross-environment consistency

## Response `200`

Successful Response

- CreateOrganizationResponse — Response after creating an organization.
  - `organization` OrganizationDetail, required — Detailed organization information for admin views.
    - `id` string, required
    - `name` string, required
    - `display_name` string, nullable, required
    - `config_name` string, required
    - `auth0_id` string, nullable, required
    - `auth_provider` string, nullable, required
    - `org_identifier` string, nullable, required
    - `created_at` string, date-time, required
    - `archived_at` string, date-time, nullable, required
    - `is_invite_only` boolean
    - `email_domains` EmailDomain[], required
      - `id` string, required
      - `domain` string, required
      - `created_at` string, date-time, required
    - `auth_methods` AuthMethod[], required
      - `id` string, required
      - `name` string, required
      - `connection_id` string, required
      - `created_at` string, date-time, required
    - `metadata` object, nullable, required
  - `auth0_provisioned` boolean — Whether Auth0 organization was created

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/traversal/apis/fastapi.md) · [All operations](https://skmtc.net/traversal/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/traversal/fastapi/revisions/2134ebffd1ef/schema)
