---
title: "Create a client company"
method: POST
path: "/reseller/companies"
---

# Create a client company

`POST /reseller/companies`

## Request

- Base URL: `https://public-api.leexi.ai/v1`
- URL: `https://public-api.leexi.ai/v1/reseller/companies`
- Auth: API key in header `Authorization`

Create a client company attached to your reseller account. The company is created with its settings and the license you choose, and starts a Leexi trial ending at `trial_end`.

## Request body

- object
  - `company_setting` object, required
    - `license_category` 'free' | 'starter' | 'ai_meeting' | 'business', required: License of the client company. Required on creation. `starter` caps the seats at 5.
    - `max_seats` integer, nullable: Maximum number of licensed users. Null for no limit.
    - `min_seats` integer, nullable: Minimum number of seats billed.
  - `industry` string: Industry of the client company.
  - `name` string, required: Name of the client company. Must not contain `#` or `_`.
  - `reseller_external_id` string: Your own reference for this client company. Must be unique among your client companies.
  - `setting` object
    - `locale` string: Default locale of the client company, for example `en-US` or `fr-FR`.
    - `time_zone` string: Time zone of the client company, for example `Europe/Paris`.
  - `subscription_currency` string: Billing currency, for example `eur`. Locked while a Stripe subscription is active.
  - `subscription_interval` 'month' | 'year': Billing interval, `month` or `year`.
  - `trial_end` integer, required: End of the Leexi trial as a Unix timestamp (seconds). Required. A date in the past creates the company with an ended trial.

## Response `200`

200

- object
  - `data` object
    - `active` boolean
    - `created_at` string
    - `industry` string, nullable: Industry of the client company. Null when not set.
    - `name` string
    - `reseller_external_id` string, nullable: Your own reference for this client company. Null when not set.
    - `updated_at` string
    - `uuid` string
    - `subscription` object: Billing state of the client company. There is no separate subscription object.
      - `status` string: Stripe status (active, trialing, incomplete, past_due, not_started, incomplete_expired, canceled, unpaid, paused) or Leexi trial status (leexi_trialing, leexi_trial_ended).
      - `active` boolean: Whether the client can currently use Leexi.
      - `license` string, nullable: free, starter, ai_meeting or business.
      - `interval` string: month or year.
      - `currency` string
      - `trial_end` integer, nullable: Unix timestamp. Null when the client is not on a trial.
      - `seats` object
        - `billed` integer: Number of seats currently billed.
        - `max` integer, nullable: Maximum number of paid users. Null when unlimited.
        - `min` integer, nullable: Minimum billed seats. Null when not enforced.
      - `manual_payment` boolean
      - `subscription_required` boolean
  - `message` string
  - `success` boolean

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `403`: 403
- `409`: 409
- `422`: 422
- `429`: 429

---

[API](https://skmtc.dev/leexi/apis/leexi-public-api.md) · [All operations](https://skmtc.dev/leexi/apis/leexi-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/leexi/apis/leexi-public-api/revisions/3d10e45c30f5?raw)
