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

# Create Company

> Create a company workspace

Create a company workspace. Provide a website domain to queue brand processing,
or set `noWebsite` and provide a name to start without one. Set
`withWelcomeSequence` to create and generate the four-email welcome sequence;
the optional `description` grounds that sequence when no website is available.

<Warning>
  This endpoint requires a personal account key (`seq_user_...`). A
  company-scoped key (`seq_live_...` or a legacy `ek_...` key) is bound to the
  single company it was created for, so it is rejected with `403` - it could
  never access the workspace it created.
</Warning>

<Note>
  Creating another company does not create another core email subscription.
  Companies owned by the same account share its plan and monthly email usage.
  See [Workspaces, Billing, and Shared
  Limits](/concepts/workspaces-and-billing).
</Note>

## Request

<ParamField body="domain" type="string">
  Company website domain or URL. Required unless `noWebsite` is `true`. When you
  send both, Sequenzy uses the domain.
</ParamField>

<ParamField body="name" type="string">
  Company display name. If omitted, Sequenzy derives it from the domain. Website
  processing may later replace it with the name found on your site. Required
  when `noWebsite` is `true` and you send no domain.
</ParamField>

<ParamField body="noWebsite" type="boolean">
  Set to `true` (any other value is ignored) to create without a website. The
  workspace is ready at once (`status: "processed"`) and no website processing
  is queued. `name` is required when you send no domain.
</ParamField>

<ParamField body="description" type="string">
  Optional business description, up to 500 characters, stored trimmed as product
  context for the welcome-sequence generator. Without a website, a non-null
  value that is not a string or is longer than 500 characters returns `400`.
  With a domain, such a value is ignored, and website processing may later
  replace the description with the one found on your site.
</ParamField>

<ParamField body="withWelcomeSequence" type="boolean">
  Set to `true` to create a draft four-email welcome sequence and queue its
  generation. Defaults to `false`; any other value is treated as `false`. The
  sequence stays a draft until you turn it on. If the sequence cannot be
  created, the company is still created and both welcome fields are `null`. If
  only queueing fails, `welcomeAutomationId` is set and `welcomeEnrichmentJobId`
  is `null`; open the sequence in the editor to retry generation.
</ParamField>

```bash With a website theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/companies" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "acme.com", "name": "Acme", "withWelcomeSequence": true}'
```

```bash Without a website theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/companies" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"noWebsite": true, "name": "Night Shift Meals", "description": "Weekly meal plans for night-shift nurses", "withWelcomeSequence": true}'
```

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "company": {
      "id": "company_abc123",
      "name": "Acme",
      "status": "processing",
      "websiteUrl": "https://acme.com"
    },
    "welcomeAutomationId": "automation_abc123",
    "welcomeEnrichmentJobId": "job_abc123",
    "message": "Company created. Processing your website to extract brand information. This typically takes 30-60 seconds."
  }
  ```

  ```json 401 theme={null}
  {
    "error": "Unauthorized"
  }
  ```

  ```json 400 theme={null}
  {
    "error": "Name is required when starting without a website."
  }
  ```

  ```json 422 theme={null}
  {
    "type": "validation",
    "on": "body",
    "property": "/name",
    "message": "Expected string",
    "summary": "Expected property 'name' to be string but found: 42"
  }
  ```

  ```json 403 theme={null}
  {
    "error": "This API key is scoped to a single company, so it cannot create another one. The new company would be created under the key owner's account, but this key could never list, select, or use it. Retry with a personal account key (seq_user_...) from Account -> API Keys, or create the company in the dashboard.",
    "code": "COMPANY_CREATE_REQUIRES_PERSONAL_KEY"
  }
  ```

  ```json 500 theme={null}
  {
    "error": "Failed to create company"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.