> ## Documentation Index
> Fetch the complete documentation index at: https://docs.semicola.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Accounts and organizations

> Your current account, the accounts under your organization, adding and deleting accounts, the registered domain and domain auto-join.

An **account** is what you operate as. Every request runs in one account's context, and each account
is either a **Buyer** or a **Seller** account. Your role in the account decides what you can change:

| Role          | In the app   | Can                                   |
| ------------- | ------------ | ------------------------------------- |
| `SUPER_ADMIN` | **Owner**    | Everything an admin can.              |
| `ADMIN`       | **Admin**    | Manage members, billing and settings. |
| `PREMIUM`     | **Operator** | Edit.                                 |
| `BASIC`       | **Member**   | View.                                 |

Admin-only operations need `ADMIN` (or Owner) on the target account.

An **organization** sits above its accounts. Organization admins manage every account under it,
which is how an agency runs several buyer accounts or a media company runs a buyer and a seller
account side by side.

| Field            | Meaning                                                           |
| ---------------- | ----------------------------------------------------------------- |
| `nodeKind`       | `ACCOUNT` for a working account, `CONTAINER` for an organization. |
| `accountType`    | `BUYER` or `SELLER`. An organization has none.                    |
| `customerRole`   | The older name for `accountType`; still accepted and returned.    |
| `customerDomain` | The account's registered domain (below).                          |

## Read and switch accounts

| Operation              | REST                           | MCP                                |
| ---------------------- | ------------------------------ | ---------------------------------- |
| Current account        | `GET /api/v2/accounts/current` | `get_status` (`account`)           |
| Accounts you can reach | `GET /api/v2/accounts`         | `get_status` (`reachableAccounts`) |
| Switch                 | `POST /api/v2/accounts/switch` | `switch_account`                   |

On v3, a credential switches only to accounts it may reach; see [Account access](/v3/account-access).

## Add an account

Admins add accounts from **Add account** in the account selector, or with
`POST /api/v2/accounts/create-child`:

| Field                                         | Notes                                                                                                                                                    |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                                        | Required. **Account name** in the dialog.                                                                                                                |
| `accountType`                                 | `BUYER` or `SELLER` (`customerRole` also works).                                                                                                         |
| `customerDomain`                              | **Operator domain** for a Buyer account (the organization operating it); **Company domain** for a Seller account (the company operating the storefront). |
| `defaultCurrency`, `paymentCurrencies`        | Seller accounts: **Primary currency** and up to 20 additional settlement currencies.                                                                     |
| `idempotencyKey`                              | 8–128 characters. A retry with the same key returns the same account.                                                                                    |
| `parentName`, `confirmOrganizationConversion` | From a standalone account (below).                                                                                                                       |

A **standalone** account (one not yet under an organization) becomes the first account of a new
organization when you add a second account. That needs explicit confirmation: without
`confirmOrganizationConversion: true` the call returns `409` ("This account is not part of an
organization. Confirm creating an organization to manage these accounts."). `parentName` names the new
organization; it defaults to your company name.

Advertisers and connected platform accounts are not accounts, so they never count against anything
here.

## Delete an account

`DELETE /api/v2/accounts/{customerId}` (admins) deletes an account under an organization. It
refuses an organization or a standalone account ("Only child accounts can be deleted."), the account
you're currently in ("Switch to another account before deleting this one."), and any account that
still has advertisers, campaigns, media buys, creatives, inventory sources or products. The `409`
lists them in `details.linkedResources`.

## Registered domain

Each account has one registered domain, set by an admin in **Settings** or with
`PATCH /api/v2/accounts/{customerId}/domain` (`customerDomain`, like `example.com`).

* A domain matching your own verified email domain is **verified** on save.
* Any other domain stays **pending** until Semicola staff approve it. Ask for that review with
  `POST /api/v2/buyer/readiness/operator/verify-request` (`domain`, `requesterEmail`, optional
  `message`); there's one open request per account and domain.

Reads return `customerDomain` and `customerDomainApproved`.

## Domain auto-join

`GET` and `PATCH /api/v2/accounts/{customerId}/membership` read and set `allowDomainAutoJoin`. When
it's on, a new user whose verified work email matches the account's domain joins without
waiting for approval. Turning it on needs a registered domain ("A registered company domain is
required to enable auto-join."). People only join through a **verified** domain; a pending one lets
no one in.

Members, invitations and access requests have their own routes (`/api/v2/members`,
`/api/v2/invitations`, `/api/v2/access-requests`). Notification opt-ins are per person; see
[Notifications](/guides/notifications).

## Seller accounts

A Seller account's registered domain is the company operating the storefront. The storefront also
has its own **operator domain** (the brand domain buyers see), which can differ; set it with
`set_storefront_operator_domain`. A different domain needs published evidence linking the two. See
[Domains](/concepts/domains).

## Buyer readiness

`get_status` answers "can this account buy yet?" for a Buyer account. Today the one blocker is
**Create your first advertiser** (`no_advertiser`); buying tools return `409 BUYER_SETUP_REQUIRED`
("Create an advertiser before planning campaigns.") until one exists. `operatorIdentity.usableForBuying`
and `canBuyAnywhere` follow the same check, and `operatorIdentity.canManage` is true for admins.

`operatorIdentity` also reports:

| Field                              | Today                                                                                                                                                            |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `operatorDomain`                   | The account's verified domain, or `null` (always `null` for a buyer agent).                                                                                      |
| `operatorDomainSource`             | `legacy_customer_domain` when that domain is set, else `none`.                                                                                                   |
| `scopeStatus`                      | Always `unclassified`: there's no step that confirms an operator scope yet.                                                                                      |
| `locked`, `lockedAt`, `lockReason` | Locked from the first binding: an advertiser activated with a seller (`advertiser_binding`), or for seller accounts the first storefront (`storefront_binding`). |

For each seller, readiness is per connection; see [Connections](/buy/connections) and
[Campaign readiness](/concepts/campaign-readiness).

## Not available yet

* **Package-based account capacity.** Any admin can add accounts; there are no plan account slots and
  no upgrade prompt.
* **Operator scope and operating units.** Buyer accounts carry an operator domain only. There's no
  whole-operator versus specific-unit choice, no `operator_unit.id`, no `save_buyer_operator` tool
  and no way to confirm an operator scope, so `scopeStatus` stays `unclassified`.
* **Market readiness** (`POST /api/v2/market-readiness`, pilot state by country and channel).
* **Organization settings in place.** To manage an organization's members, switch to the organization;
  a child account's **Members** shows that account's members only.
* **Refer a company.** There's no referral page or referral reward. Promo and referral codes at signup
  only add setup Intelligence Units.
