# Create a client organization

`POST https://api.morevoice.ai/v1/organizations`

Creates a client organisation under your partner account (live keys only). With `admin_email`, that person is invited as its owner (the invitation link is emailed, never returned).

Authenticate with a secret API key: `Authorization: Bearer $MOREVOICE_API_KEY`.

Operation ID: `organizations_create`.

## Parameters

### Headers

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `MoreVoice-Version` | `string` | no | The API version to use for this request. Defaults to the version the API key is pinned to. |
| `Idempotency-Key` | `string` | no | A unique key (for example a UUID) that makes this request safe to retry: for 24 hours, a retry with the same key and parameters returns the first response instead of acting twice. |

## Request body

Required, `application/json`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | yes | The client's name. |
| `admin_email` | `string` | no | The client's first admin: invited as its owner by email. |
| `billing_mode` | `"wholesale" \| "direct"` | no | Default `wholesale` (billed to you). |
| `country` | `string` | no | ISO 3166-1 alpha-2 (default: yours). |
| `locale` | `"he" \| "en"` | no | Default: yours. |
| `plan` | `"starter" \| "growth" \| "business" \| "enterprise"` | no | A plan your wholesale price book offers (default `starter`). |

Example:

```json
{
  "admin_email": "owner@haifa-dental.example",
  "name": "Haifa Dental Clinic",
  "plan": "growth"
}
```

## Responses

### 201 Created

The new client organisation. Returns `Organization`.

| Field | Type | Description |
| --- | --- | --- |
| `id` | `string` | The client organisation's ID. Send it as `Mv-Account` to act inside it. |
| `object` | `"organization"` | — |
| `livemode` | `boolean` | `true` in live mode, `false` in test mode. |
| `name` | `string` | — |
| `slug` | `string` | — |
| `status` | `"trial" \| "active" \| "past_due" \| "suspended" \| "closed"` | `trial`, `active`, `past_due`, `suspended` or `closed`. |
| `plan` | `string` | The organisation's plan (`starter`, `growth`, `business`, `enterprise`). |
| `billing_mode` | `"wholesale" \| "direct"` | `wholesale`: its usage is billed on your partner invoice; `direct`: it is billed directly, not through you. |
| `region` | `string` | The data region it lives in (always yours). |
| `country` | `string` | ISO 3166-1 alpha-2. |
| `locale` | `"he" \| "en"` | — |
| `parent` | `string` | Your (the partner's) organisation ID. |
| `members` | `integer` | Active members (seats in use). |
| `created` | `string` | An ISO-8601 timestamp in UTC. |

Example:

```json
{
  "billing_mode": "wholesale",
  "country": "IL",
  "created": "2026-11-03T09:14:22.000Z",
  "id": "org_6Hn3QpX8vB2mK9tL4wR7yZ",
  "livemode": true,
  "locale": "he",
  "members": 4,
  "name": "Haifa Dental Clinic",
  "object": "organization",
  "parent": "org_2Bc4De6Fg8Hi0Jk2Lm4No6",
  "plan": "growth",
  "region": "il",
  "slug": "haifa-dental-clinic",
  "status": "active"
}
```

### 400 Bad Request

The request is invalid: a parameter is missing, malformed or unknown, or the version header is unknown. Returns `ErrorEnvelope`.

### 401 Unauthorized

No valid API key was sent. Returns `ErrorEnvelope`.

### 403 Forbidden

The key may not do this (a missing scope, a plan limit, or a compliance block). Returns `ErrorEnvelope`.

### 409 Conflict

The request conflicts with the object's state, or the Idempotency-Key was reused with other parameters. Returns `ErrorEnvelope`.

### 429 Too Many Requests

Too many requests, or no call capacity right now. Retry after the Retry-After delay. Returns `ErrorEnvelope`.

### 500 Internal Server Error

Something went wrong on MoreVoice's side. Retry with the same Idempotency-Key. Returns `ErrorEnvelope`.

## Code samples

**TypeScript**

```ts
import MoreVoice from "@morevoice/sdk";

const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment

const organization = await mv.organizations.create({
	admin_email: "owner@haifa-dental.example",
	name: "Haifa Dental Clinic",
	plan: "growth",
});
console.log(organization);
```

**Python**

```python
from morevoice import MoreVoice

client = MoreVoice()  # MOREVOICE_API_KEY from the environment

organization = client.organizations.create({
    "admin_email": "owner@haifa-dental.example",
    "name": "Haifa Dental Clinic",
    "plan": "growth",
})
print(organization)
```

**cURL**

```sh
curl -X POST https://api.morevoice.ai/v1/organizations \
  -H "Authorization: Bearer $MOREVOICE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "admin_email": "owner@haifa-dental.example",
  "name": "Haifa Dental Clinic",
  "plan": "growth"
}'
```
