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

# Create Organization

`POST /v1/organizations`

Create an organization with the caller as its owner.

Takes a name; the slug is derived from it with a random suffix, so two
organizations may share a name and a later rename does not move the slug.
A default workspace is provisioned alongside, because an organization
without one has nowhere to hold a key, a budget or a usage row.

The caller is **not** moved into it. Switching is a separate call
(``POST /me/switch``), so creating an organization does not change what the
rest of the caller's session is looking at.

## Request body

- OrganizationCreateRequest — Create an organization, with the caller as its owner. Name only. The slug is derived server-side and never sent, because it is unique where the name is not: two organizations may share a name, and a rename deliberately does not move the slug.
  - `name` string, required

## Response `201`

Successful Response

- OrganizationPublic
  - `created_at` string, date-time, required
  - `created_by_user_id` string, uuid, nullable
  - `id` string, uuid, required
  - `name` string, required
  - `slug` string, required
  - `updated_at` string, date-time, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-25** `ae3e1cd7925a` — 1 info
  - endpoint added
- **2026-08-25** `1725b1abe9a0` — 1 breaking
  - api path removed without deprecation
- **2026-08-24** `6d9979b0b62b` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mozilla-ai/apis/otari/changes/v1/organizations/post.md)

---

[API](https://skmtc.dev/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.dev/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mozilla-ai/otari/revisions/7f178e92b56c/schema)
