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

# Create Organization

`POST /api/v1/organizations`

## Request

- Base URL: `https://api.teaflask.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.teaflask.com/api/v1/organizations`
- Auth: none declared

Creation is what makes a new account usable, so it is where the
human check stands for every sign-in provider (TEA-1572). The check
dials Cloudflare before any session opens; what follows the commit is
best-effort and can never fail the 201.

## Request body

- CreateOrganizationRequest
  - `name` string, required
  - `captcha_token` string, nullable

## Response `201`

Successful Response

- OrganizationResponse
  - `id` string, uuid, required
  - `name` string, required
  - `created_at` string, date-time, required
  - `logo_url` string, nullable

## Other responses

- `400`: The human check's token was missing or rejected
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `409`: The creator's email domain is DNS-claimed by an organization
- `422`: Validation error
- `500`: Internal server error
- `503`: Cloudflare gave no verdict on the human check

---

[API](https://skmtc.dev/teaflask/apis/teaflask-api.md) - [All operations](https://skmtc.dev/teaflask/apis/teaflask-api/llms.txt) - [OpenAPI document](https://skmtc.dev/teaflask/apis/teaflask-api/revisions/d23e9286b847?raw)
