---
title: "Create a company. Name is required; Id must be null."
method: POST
path: "/api/v1/company"
tags: ["Company"]
---

# Create a company. Name is required; Id must be null.

`POST /api/v1/company`

## Request

- Base URL: `https://api.intheloop.io`
- URL: `https://api.intheloop.io/api/v1/company`
- Auth: API key in header `Authorization`

## Headers

- `Loop-Workspace-Id` string
- `Authorization` string
- `X-Impersonate-User` string

## Request body

- Company: A workspace-shared Company that groups profiles belonging to the same organization.
  - `id` string: Resource id
  - `name` string: Resource name or title
  - `revision` string: Resource revision
  - `clientId` string: Resource client id
  - `$type` string, required
  - `domains` string[]: 0-n email domains owned by this Company. A domain belongs to exactly one Company per workspace.
  - `logo` string: Manually uploaded logo link. No third-party favicon resolution in v1.
  - `description` string: Free-text description.
  - `externalId` string: External CRM/ERP id. Unique within the workspace if set.
  - `profileCount` integer: Number of workspace profiles linked to this Company that the caller can see. Only populated when requested with ?with=profileCount on a single-company get; read-only, ignored on create/update.

## Response `200`

OK

- Company: A workspace-shared Company that groups profiles belonging to the same organization.
  - `id` string: Resource id
  - `name` string: Resource name or title
  - `revision` string: Resource revision
  - `clientId` string: Resource client id
  - `$type` string, required
  - `domains` string[]: 0-n email domains owned by this Company. A domain belongs to exactly one Company per workspace.
  - `logo` string: Manually uploaded logo link. No third-party favicon resolution in v1.
  - `description` string: Free-text description.
  - `externalId` string: External CRM/ERP id. Unique within the workspace if set.
  - `profileCount` integer: Number of workspace profiles linked to this Company that the caller can see. Only populated when requested with ?with=profileCount on a single-company get; read-only, ignored on create/update.

## Other responses

- `400`: Bad request. Check fields message and error code from response body for additional information.
- `401`: Unauthorized request. Check fields message and error code from response body for additional information.
- `409`: Request failed due to conflict resource state.Check fields message and error code from response body for additional information.
- `429`: Too many requests. Check response header Retry-After indicating how long to wait before making a new request.

---

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