---
title: "Create Organization Endpoint"
method: POST
path: "/api/v1/organizations"
tags: ["organizations"]
---

# Create Organization Endpoint

`POST /api/v1/organizations`

## Request body

- CreateOrganizationRequest
  - `organization_name` string, required — Display name for the new organization.
  - `organization_key` string, nullable — Optional human-readable short key. Defaults to the generated `org_*` id if omitted. Must be unique per environment.
  - `user_emails` string[] — Optional seed members for the new organization. Each email is added as an OWNER and skips the invite flow.

## Response `200`

Successful Response

- OrganizationDetailResponse
  - `organization` Organization, required
    - `organization_id` string, required — Opaque `org_*` identifier.
    - `organization_key` string, required — Human-readable short key (e.g. customer slug). Unique per environment.
    - `organization_name` string, required — Display name for the organization.
    - `created_at` string, date-time, nullable — UTC timestamp the organization was created.
  - `members` OrganizationMember[], required — All members of the organization.
    - `email` string, required — Email of the member.
    - `display_name` string, nullable — User's display name, when set.
    - `created_at` string, date-time, nullable — UTC timestamp the membership row was created.
    - `status` 'ORG_STATUS_ACTIVE' | 'ORG_STATUS_PENDING' | 'ORG_STATUS_DISABLED', required
    - `role` 'ORG_ROLE_OWNER' | 'ORG_ROLE_ADMIN' | 'ORG_ROLE_MEMBER', required

---

[API](https://skmtc.dev/trajectory/apis/trajectory-api.md) · [All operations](https://skmtc.dev/trajectory/apis/trajectory-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/trajectory/trajectory-api/revisions/d930b23b9602/schema)
