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

# Provision a tenant



## OpenAPI

````yaml /api/partner-api/provisioning.json post /v1/msp/provisioning/tenants
openapi: 3.1.1
info:
  title: 'Cyrisma New Partner API: Provisioning'
  version: v1
servers:
  - url: https://{instance}.cyrisma.com/ta
    description: Tenant Authority, served under the partner's own CYRISMA instance host.
    variables:
      instance:
        default: ccnnnnnn
        description: The instance label of the tenant host issued to the partner.
security:
  - bearerAuth: []
tags:
  - name: Auth
  - name: MSP Administration
paths:
  /v1/msp/provisioning/tenants:
    post:
      tags:
        - MSP Administration
      summary: Provision a tenant
      operationId: CreateMspTenantProvisioningV1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenantProvisioningCreateApiRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantProvisioningCreateApiResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/HttpValidationProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    TenantProvisioningCreateApiRequest:
      required:
        - parent_tenant_id
        - name
        - trial
      type: object
      properties:
        parent_tenant_id:
          type: string
          format: uuid
        name:
          type: string
        short_name:
          type:
            - 'null'
            - string
        kind:
          type:
            - 'null'
            - string
        contact:
          type:
            - 'null'
            - string
        notification_email:
          type:
            - 'null'
            - string
        address_1:
          type:
            - 'null'
            - string
        address_2:
          type:
            - 'null'
            - string
        city:
          type:
            - 'null'
            - string
        state:
          type:
            - 'null'
            - string
        postal_code:
          type:
            - 'null'
            - string
        country_id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        region_id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        industry_id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        employee_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        assigned_technician_user_id:
          type:
            - 'null'
            - string
          format: uuid
        trial:
          type: boolean
        tenant_kind_id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        legacy_use_type:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        support_enabled:
          type:
            - 'null'
            - boolean
        idempotency_key:
          type:
            - 'null'
            - string
    TenantProvisioningCreateApiResponse:
      required:
        - tenant_id
        - tenant_number
        - job_id
        - status
        - tenant_host
        - registration_key
        - orchestrator_wake_succeeded
      type: object
      properties:
        tenant_id:
          type: string
          format: uuid
        tenant_number:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int32
        job_id:
          type: string
          format: uuid
        status:
          type: string
        tenant_host:
          type: string
        registration_key:
          type:
            - 'null'
            - string
        orchestrator_wake_succeeded:
          type:
            - 'null'
            - boolean
    HttpValidationProblemDetails:
      type: object
      properties:
        type:
          type:
            - 'null'
            - string
        title:
          type:
            - 'null'
            - string
        status:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        detail:
          type:
            - 'null'
            - string
        instance:
          type:
            - 'null'
            - string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    ProblemDetails:
      type: object
      properties:
        type:
          type:
            - 'null'
            - string
        title:
          type:
            - 'null'
            - string
        status:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        detail:
          type:
            - 'null'
            - string
        instance:
          type:
            - 'null'
            - string
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        A machine-client token from POST /v1/auth/client-token. Provisioning and
        user management need the pulse.write scope; reads need pulse.read.
      scheme: bearer
      bearerFormat: JWT

````