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

# Create company

> Create a new company. Pass parent_company_id to create a connected account under a platform, or omit it to create a company for the current user.

Required permissions:
 - `company:create`
 - `company:basic:read`



## OpenAPI

````yaml /openapi/api-v1-stable.json post /companies
openapi: 3.1.0
info:
  description: >-
    The Whop REST API. Please see
    https://docs.whop.com/developer/api/getting-started for more details.
  termsOfService: https://whop.com/tos-developer-api/
  title: Whop API
  version: 1.0.0
  x-api-version-date: '2026-08-21'
servers:
  - description: Production Whop API
    url: https://api.whop.com/api/v1
  - description: Sandbox Whop API
    url: https://sandbox-api.whop.com/api/v1
security: []
tags:
  - description: Products
    name: Products
  - description: Payments
    name: Payments
  - description: Refunds
    name: Refunds
  - description: Disputes
    name: Disputes
  - description: Dispute alerts
    name: Dispute alerts
  - description: Resolution center cases
    name: Resolution center cases
  - description: Checkout configurations
    name: Checkout configurations
  - description: Setup intents
    name: Setup intents
  - description: Payment methods
    name: Payment methods
  - description: Invoices
    name: Invoices
  - description: Promo codes
    name: Promo codes
  - description: Card transactions
    name: Card transactions
  - description: Ledger accounts
    name: Ledger accounts
  - description: Withdrawals
    name: Withdrawals
  - description: Payout methods
    name: Payout methods
  - description: Verifications
    name: Verifications
  - description: Identity profiles
    name: Identity profiles
  - description: Payout accounts
    name: Payout accounts
  - description: Topups
    name: Topups
  - description: Companies
    name: Companies
  - description: Authorized users
    name: Authorized users
  - description: Fee markups
    name: Fee markups
  - description: Members
    name: Members
  - description: Memberships
    name: Memberships
  - description: Leads
    name: Leads
  - description: Entries
    name: Entries
  - description: Shipments
    name: Shipments
  - description: Reviews
    name: Reviews
  - description: Company token transactions
    name: Company token transactions
  - description: Affiliates
    name: Affiliates
  - description: Experiences
    name: Experiences
  - description: Forums
    name: Forums
  - description: Forum posts
    name: Forum posts
  - description: Chat channels
    name: Chat channels
  - description: Support channels
    name: Support channels
  - description: Messages
    name: Messages
  - description: Reactions
    name: Reactions
  - description: Dm members
    name: Dm members
  - description: Dm channels
    name: Dm channels
  - description: Notifications
    name: Notifications
  - description: Courses
    name: Courses
  - description: Course chapters
    name: Course chapters
  - description: Course lessons
    name: Course lessons
  - description: Course students
    name: Course students
  - description: Course lesson interactions
    name: Course lesson interactions
  - description: Apps
    name: Apps
  - description: Webhooks
    name: Webhooks
  - description: App builds
    name: App builds
  - description: Access tokens
    name: Access tokens
  - description: Account links
    name: Account links
  - description: Files
    name: Files
  - description: Ai chats
    name: Ai chats
  - description: Bounties
    name: Bounties
  - description: Stats
    name: Stats
  - description: Conversions
    name: Conversions
  - description: Ad reports
    name: Ad reports
paths:
  /companies:
    post:
      tags:
        - Companies
      summary: Create company
      description: >-
        Create a new company. Pass parent_company_id to create a connected
        account under a platform, or omit it to create a company for the current
        user.


        Required permissions:
         - `company:create`
         - `company:basic:read`
      operationId: createCompany
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              description: Parameters for CreateCompany
              properties:
                country:
                  description: >-
                    The country the company is located in. Defaults to the
                    parent company's country for connected accounts, or the
                    owner's IP-derived country.
                  oneOf:
                    - $ref: '#/components/schemas/Countries'
                    - type: 'null'
                description:
                  description: >-
                    A promotional pitch displayed to potential customers on the
                    company's store page.
                  type:
                    - string
                    - 'null'
                email:
                  description: >-
                    The email address of the user who will own the connected
                    account. Required when parent_company_id is provided.
                  type:
                    - string
                    - 'null'
                logo:
                  description: The company's logo image. Accepts PNG, JPEG, or GIF format.
                  properties:
                    id:
                      description: The ID of an existing file object.
                      type: string
                  required:
                    - id
                  title: FileInputWithId
                  type:
                    - object
                    - 'null'
                metadata:
                  additionalProperties: true
                  description: >-
                    A key-value JSON object of custom metadata to store on the
                    company.
                  type:
                    - object
                    - 'null'
                parent_company_id:
                  description: >-
                    The unique identifier of the parent platform company. When
                    provided, creates a connected account under that platform.
                    Omit to create a company for the current user.
                  type:
                    - string
                    - 'null'
                send_customer_emails:
                  description: >-
                    Whether Whop sends transactional emails to customers on
                    behalf of this company. Only applies when creating a
                    connected account.
                  type:
                    - boolean
                    - 'null'
                title:
                  description: The display name of the company shown to customers.
                  type: string
              required:
                - title
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Company'
          description: A successful response
        '400':
          content:
            application/json:
              example:
                error:
                  code: parameter_missing
                  message: 'Missing required parameter: amount.'
                  param: amount
                  type: invalid_request_error
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Bad request
        '401':
          content:
            application/json:
              example:
                error:
                  message: Invalid or missing API key
                  type: unauthorized
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Unauthorized
        '403':
          content:
            application/json:
              example:
                error:
                  message: You do not have permission to access this resource
                  type: forbidden
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Forbidden
        '404':
          content:
            application/json:
              example:
                error:
                  message: Resource not found
                  type: not_found
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Not found
        '422':
          content:
            application/json:
              example:
                error: null
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Verification required
        '429':
          content:
            application/json:
              example:
                error: null
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Too many requests
        '500':
          content:
            application/json:
              example:
                error:
                  message: An unexpected error occurred
                  type: internal_server_error
              schema:
                properties:
                  error:
                    properties:
                      code:
                        description: >-
                          A short string indicating the specific error code,
                          e.g. 'parameter_missing', 'parameter_invalid',
                          'invalid_json'
                        type:
                          - string
                          - 'null'
                      message:
                        type: string
                      param:
                        description: The parameter that caused the error, if applicable
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                    required:
                      - type
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Internal server error
      security:
        - bearerAuth:
            - company:create
            - company:basic:read
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Whop from '@whop/sdk';

            const client = new Whop({
              apiKey: process.env['WHOP_API_KEY'], // This is the default and can be omitted
            });

            const company = await client.companies.create({ title: 'title' });

            console.log(company.id);
components:
  schemas:
    Countries:
      description: The available countries on the platform
      enum:
        - us
        - ca
        - gb
        - ab
        - af
        - al
        - dz
        - as
        - ad
        - ao
        - ai
        - aq
        - ag
        - ar
        - am
        - aw
        - au
        - at
        - az
        - bs
        - bh
        - bd
        - bb
        - by
        - be
        - bz
        - bj
        - bm
        - bt
        - bo
        - ba
        - bw
        - br
        - io
        - vg
        - bn
        - bg
        - bf
        - bi
        - kh
        - cm
        - cv
        - ky
        - cf
        - td
        - cl
        - cn
        - cx
        - cc
        - co
        - km
        - cg
        - ck
        - cr
        - ci
        - hr
        - cu
        - cw
        - cy
        - cz
        - cd
        - dk
        - dj
        - dm
        - do
        - ec
        - eg
        - sv
        - gq
        - ee
        - et
        - fk
        - fo
        - fj
        - fi
        - fr
        - gf
        - pf
        - ga
        - gm
        - ge
        - de
        - gh
        - gi
        - gr
        - gl
        - gd
        - gp
        - gu
        - gt
        - gg
        - gn
        - gw
        - gy
        - ht
        - hn
        - hk
        - hu
        - is
        - in
        - id
        - iq
        - ie
        - im
        - il
        - it
        - jm
        - sj
        - jp
        - je
        - jo
        - kz
        - ke
        - ki
        - xk
        - kw
        - kg
        - la
        - lv
        - lb
        - ls
        - lr
        - ly
        - li
        - lt
        - lu
        - mo
        - mk
        - mg
        - mw
        - my
        - mv
        - ml
        - mt
        - mh
        - mq
        - mr
        - mu
        - yt
        - mx
        - fm
        - md
        - mc
        - mn
        - me
        - ms
        - ma
        - mz
        - mm
        - na
        - nr
        - np
        - nl
        - an
        - nc
        - nz
        - ni
        - ne
        - ng
        - nu
        - mp
        - 'no'
        - om
        - pk
        - pw
        - ps
        - pa
        - pg
        - py
        - pe
        - ph
        - pn
        - pl
        - pt
        - pr
        - qa
        - re
        - ro
        - ru
        - rw
        - bl
        - sh
        - kn
        - lc
        - mf
        - pm
        - vc
        - ws
        - sm
        - st
        - sa
        - sn
        - rs
        - sc
        - sl
        - sg
        - sx
        - sk
        - si
        - sb
        - so
        - za
        - kr
        - ss
        - es
        - lk
        - sd
        - sr
        - sz
        - se
        - ch
        - tw
        - tj
        - tz
        - th
        - tl
        - tg
        - tk
        - to
        - tt
        - tn
        - tr
        - tm
        - tc
        - tv
        - vi
        - ug
        - ua
        - ae
        - um
        - uy
        - uz
        - vu
        - va
        - ve
        - vn
        - wf
        - eh
        - ye
        - zm
        - zw
        - sy
      type: string
    Company:
      description: >-
        A company is a seller on Whop. Companies own products, manage members,
        and receive payouts.
      properties:
        affiliate_instructions:
          description: >-
            Guidelines and instructions provided to affiliates explaining how to
            promote this company's products.
          example: Share your unique link on social media to earn 20% commission.
          type:
            - string
            - 'null'
        created_at:
          description: The datetime the company was created.
          example: '2023-12-01T05:00:00.401Z'
          format: date-time
          type: string
        description:
          description: >-
            A promotional pitch written by the company creator, displayed to
            potential customers on the store page.
          example: Learn the fundamentals of data analytics with hands-on projects.
          type:
            - string
            - 'null'
        featured_affiliate_product:
          description: >-
            The product featured for affiliates to promote on this company's
            affiliate page. Null if none is configured.
          properties:
            id:
              description: The unique identifier for the product.
              example: prod_xxxxxxxxxxxxx
              type: string
            name:
              description: >-
                The display name of the product shown to customers. Maximum 50
                characters.
              type: string
          required:
            - id
            - name
          type:
            - object
            - 'null'
        id:
          description: The unique identifier for the company.
          example: biz_xxxxxxxxxxxxxx
          type: string
        logo:
          description: The company's logo.
          properties:
            url:
              description: >-
                A pre-optimized URL for rendering this attachment on the client.
                This should be used for displaying attachments in apps.
              example: https://media.whop.com/abc123/optimized.jpg
              type:
                - string
                - 'null'
          required:
            - url
          type:
            - object
            - 'null'
        member_count:
          description: >-
            The total number of users who currently hold active memberships
            across all of this company's products.
          example: 42
          type: integer
        metadata:
          additionalProperties: true
          description: >-
            A key-value JSON object of custom metadata for this company, managed
            by the platform that created the account.
          type:
            - object
            - 'null'
        owner_user:
          description: >-
            The user who owns and has full administrative control over this
            company.
          properties:
            id:
              description: The unique identifier for the user.
              example: user_xxxxxxxxxxxxx
              type: string
            name:
              description: The user's display name shown on their public profile.
              example: John Doe
              type:
                - string
                - 'null'
            username:
              description: The user's unique username shown on their public profile.
              example: johndoe42
              type: string
          required:
            - id
            - name
            - username
          type: object
        published_reviews_count:
          description: >-
            The total number of published customer reviews across all products
            for this company.
          example: 42
          type: integer
        route:
          description: >-
            URL slug for the account's store page, e.g. `pickaxe` in
            whop.com/pickaxe.
          example: pickaxe
          type: string
        send_customer_emails:
          description: >-
            Whether Whop sends transactional emails (receipts, updates) to
            customers on behalf of this company.
          type: boolean
        social_links:
          description: >-
            The list of social media accounts and external links associated with
            this company.
          items:
            description: A social link attached to a resource on the site.
            properties:
              id:
                description: The unique identifier for the social link.
                example: soci_xxxxxxxxxxxxx
                type: string
              url:
                description: The URL of the social media profile or external link.
                example: https://x.com/whop
                type: string
              website:
                $ref: '#/components/schemas/SocialLinkWebsites'
                description: The website
            required:
              - id
              - url
              - website
            type: object
          type: array
        target_audience:
          description: The target audience for the company. Null if not set.
          type:
            - string
            - 'null'
        title:
          description: The display name of the company shown to customers.
          example: Pickaxe
          type: string
        updated_at:
          description: The datetime the company was last updated.
          example: '2023-12-01T05:00:00.401Z'
          format: date-time
          type: string
        verified:
          description: >-
            Whether this company has been verified by Whop's trust and safety
            team.
          type: boolean
      required:
        - id
        - title
        - description
        - verified
        - send_customer_emails
        - created_at
        - updated_at
        - member_count
        - owner_user
        - route
        - logo
        - published_reviews_count
        - metadata
        - target_audience
        - social_links
        - affiliate_instructions
        - featured_affiliate_product
      type: object
    SocialLinkWebsites:
      description: The different websites you can have social links for
      enum:
        - x
        - instagram
        - facebook
        - tiktok
        - youtube
        - linkedin
        - twitch
        - website
        - custom
      type: string
  securitySchemes:
    bearerAuth:
      bearerFormat: auth-scheme
      description: >-
        An Account API key, account-scoped JWT, App API key, or user OAuth
        token. Prepend the key or token with `Bearer`, for example `Bearer
        ***************************`.
      scheme: bearer
      type: http

````