---
title: "Create a company (v2)"
method: POST
path: "/v2/companies/"
tags: ["companies"]
---

# Create a company (v2)

`POST /v2/companies/`

## Request

- Base URL: `https://api.prod.getdex.com`
- URL: `https://api.prod.getdex.com/v2/companies/`
- Auth: HTTP bearer

Create a company in the workspace. `name` is required (1-150 characters, trimmed); names need not be unique. `website_url` is stored as typed, with `https://` added when no scheme is given; another company in the workspace (archived included) with the same website is 409 with `details.existing_company_id`. Social fields accept a profile URL or a handle and store the slug. Viewers are refused. Workspace-only: send the `X-Dex-Workspace` header (404 `record_not_found` without it). **Requires an `Idempotency-Key` header**. Returns `{ data: { company: {...} } }` with status 201.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `company` object, required
    - `name` string, required
    - `description` string
    - `linkedin_description` string
    - `website_url` string
    - `linkedin_slug` string
    - `facebook_slug` string
    - `x_slug` string
    - `instagram_slug` string
    - `headquarters_location` string
    - `country_code` string
    - `email` string
    - `phone_number` string
    - `arr_estimate` integer
    - `number_of_employees` integer

## Response `201`

Created

- object
  - `data` object, required
    - `company` object, required
      - `id` string, uuid, required
      - `user_id` string, required
      - `workspace_id` string, uuid, nullable, required
      - `name` string, required
      - `description` string, nullable, required
      - `linkedin_description` string, nullable, required
      - `logo_url` string, nullable, required
      - `website_url` string, nullable, required
      - `linkedin_slug` string, nullable, required
      - `facebook_slug` string, nullable, required
      - `x_slug` string, nullable, required
      - `instagram_slug` string, nullable, required
      - `headquarters_location` string, nullable, required
      - `country_code` string, nullable, required
      - `email` string, nullable, required
      - `phone_number` string, nullable, required
      - `arr_estimate` integer, nullable, required
      - `number_of_employees` integer, nullable, required
      - `linkedin_data` object, nullable, required
        - `industry` string
        - `company_type` string
        - `size_range` string
        - `specialities` string[]
      - `ignore_merge` boolean, required
      - `archived_at` union, required
        - string, date-time
        - unknown
      - `created_at` union, required
        - string, date-time
        - unknown
      - `updated_at` union, required
        - string, date-time
        - unknown

## Other responses

- `400`: Request body failed validation.
- `401`: Missing or invalid API key.
- `403`: Valid key, insufficient permission.
- `404`: Resource does not exist.
- `409`: Request conflicts with the current state of the resource.
- `429`: Rate limit exceeded.
- `500`: Unexpected server error.

## Changes

- **2026-10-22** `657247ddcf7c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getdex/apis/dex-public-api/changes/v2/companies/post.md)

---

[API](https://skmtc.dev/getdex/apis/dex-public-api.md) · [All operations](https://skmtc.dev/getdex/apis/dex-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getdex/apis/dex-public-api/revisions/657247ddcf7c?raw)
