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

# Create an Extension

> Create an Extension given an App reference



## OpenAPI

````yaml /api-specs/cloud/public-api.yaml post /api/extensions/beta/extensions
openapi: 3.0.3
info:
  title: Domino Public API
  description: Domino Public API Endpoints
  version: cloud
servers: []
security:
  - DominoApiKey: []
  - BearerAuthentication: []
tags:
  - name: AIGateway
  - name: AppInstances
  - name: AppVersions
  - name: Apps
  - name: AsyncPredictions
  - name: AuditTrail
  - name: BillingTag
  - name: BillingTagSettings
  - name: Cost
  - name: CustomMetrics
  - name: DataSource
  - name: DatasetRw
  - name: DeploymentTargets
  - name: Environments
  - name: Extensions
  - name: GenAI
  - name: HardwareTier
  - name: Jobs
  - name: ModelAPI
  - name: ModelAPIVersion
  - name: ModelDeployment
  - name: Organizations
  - name: PPM
  - name: PersonalAccessToken
  - name: ProjectSharedDatasets
  - name: ProjectTemplates
  - name: Projects
  - name: ProjectsCommits
  - name: ProjectsFiles
  - name: RegisteredModels
  - name: ServiceAccounts
  - name: Users
  - name: Workspaces
paths:
  /api/extensions/beta/extensions:
    post:
      tags:
        - Extensions
      summary: Create an Extension
      description: Create an Extension given an App reference
      operationId: createExtension
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtensionCreationRequest'
        description: Request to create an extension
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtensionResponse'
          description: Success
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    ExtensionCreationRequest:
      properties:
        appId:
          description: The id of the App to associate the Extension with.
          type: string
        appVersionId:
          description: >-
            The version of the App to associate the Extension with. If not
            provided, the Extension will use the app's latest version.
          type: string
        description:
          description: The description of the Extension.
          type: string
        enabled:
          description: Whether the Extension is globally enabled or disabled.
          type: boolean
        name:
          description: The name of the Extension.
          type: string
        uiMountPointTypeConfigs:
          $ref: '#/components/schemas/UIMountPointTypeConfigs'
      required:
        - name
        - enabled
        - appId
        - uiMountPointTypeConfigs
      type: object
    ExtensionResponse:
      properties:
        appId:
          description: The id of the App to associate the Extension with.
          type: string
        appVersionId:
          description: The version of the App to associate the Extension with.
          type: string
        createdAt:
          description: The date and time when the Extension was created.
          format: date-time
          type: string
        createdBy:
          $ref: '#/components/schemas/UserSummary'
        deletedAt:
          description: >-
            The date and time when the Extension was deleted. If null, the
            Extension has not been deleted.
          format: date-time
          type: string
        deletedBy:
          $ref: '#/components/schemas/UserSummary'
        description:
          description: The description of the Extension.
          type: string
        enabled:
          description: Whether the Extension is globally enabled or disabled.
          type: boolean
        id:
          description: The id of the Extension.
          type: string
        kind:
          $ref: '#/components/schemas/ExtensionKind'
        name:
          description: The name of the Extension.
          type: string
        totalViews:
          description: The total number of views across all app versions.
          format: int64
          type: integer
        uiMountPointTypeConfigs:
          $ref: '#/components/schemas/UIMountPointTypeConfigs'
        updatedAt:
          description: The date and time when the Extension was last updated.
          format: date-time
          type: string
        updatedBy:
          $ref: '#/components/schemas/UserSummary'
      required:
        - id
        - name
        - enabled
        - appId
        - uiMountPointTypeConfigs
        - kind
        - totalViews
        - createdAt
        - createdBy
        - updatedAt
        - updatedBy
      type: object
    UIMountPointTypeConfigs:
      description: >-
        The configuration for the UI mount points of the Extension. Each
        property corresponds to a different mount point in the Domino UI where
        the Extension can be mounted.
      properties:
        adminPanel:
          $ref: '#/components/schemas/AdminPanelMountConfig'
        dataset:
          $ref: '#/components/schemas/DatasetMountConfig'
        datasetFileContext:
          $ref: '#/components/schemas/DatasetFileContextMountConfig'
        modelDetails:
          $ref: '#/components/schemas/ModelDetailsMountConfig'
        netAppVolume:
          $ref: '#/components/schemas/NetAppVolumeMountConfig'
        netAppVolumeFileContext:
          $ref: '#/components/schemas/NetAppVolumeFileContextMountConfig'
        projectSidebar:
          $ref: '#/components/schemas/ProjectSidebarMountConfig'
      type: object
    UserSummary:
      description: Information about a Domino user including id and names.
      properties:
        firstName:
          description: The first name of the user.
          type: string
        id:
          description: The id of the user.
          type: string
        lastName:
          description: The last name of the user.
          type: string
        userName:
          description: The username of the user.
          type: string
      required:
        - id
        - firstName
        - lastName
        - userName
      type: object
    ExtensionKind:
      description: The category of the Extension.
      enum:
        - DominoOfficial
        - Uncategorized
      type: string
    FailureEnvelopeV1:
      properties:
        errors:
          description: Errors that caused a request to fail
          items:
            type: string
          type: array
        requestId:
          description: Id used to correlate a request with server actions.
          example: bbd78579-93c4-45ee-a983-0d5c8da6d5b1
          type: string
      required:
        - requestId
        - errors
      type: object
    AdminPanelMountConfig:
      properties:
        enabled:
          description: >-
            If true, the Extension is mounted in the admin panel of the Domino
            UI.
          type: boolean
        urlConfig:
          $ref: '#/components/schemas/MountPointTypeUrlConfig'
      required:
        - enabled
      type: object
    DatasetMountConfig:
      properties:
        enabled:
          description: >-
            If true, the Extension is mounted in the dataset view of the Domino
            UI.
          type: boolean
        urlConfig:
          $ref: '#/components/schemas/MountPointTypeUrlConfig'
      required:
        - enabled
      type: object
    DatasetFileContextMountConfig:
      properties:
        allProjects:
          description: >-
            If true, the Extension will be mounted for all projects. If false,
            the extension will only be mounted for the projects specified by
            each mount point's projectId (mountPoints[].projectId).
          type: boolean
        enabled:
          description: >-
            If true, the Extension is mounted in the Dataset file context of the
            Domino UI.
          type: boolean
        fileTypes:
          description: >-
            The file types that the Extension should be mounted for in the
            dataset file context.
          items:
            type: string
          type: array
        mountPoints:
          items:
            $ref: '#/components/schemas/DatasetFileContextMountPoint'
          type: array
        urlConfig:
          $ref: '#/components/schemas/MountPointTypeUrlConfig'
      required:
        - enabled
      type: object
    ModelDetailsMountConfig:
      properties:
        enabled:
          description: >-
            If true, the Extension is mounted to places in the Domino UI that
            show model details (e.g. model cards).
          type: boolean
        urlConfig:
          $ref: '#/components/schemas/MountPointTypeUrlConfig'
      required:
        - enabled
      type: object
    NetAppVolumeMountConfig:
      properties:
        enabled:
          description: >-
            If true, the Extension is mounted in the NetApp volume view of the
            Domino UI.
          type: boolean
        urlConfig:
          $ref: '#/components/schemas/MountPointTypeUrlConfig'
      required:
        - enabled
      type: object
    NetAppVolumeFileContextMountConfig:
      properties:
        allProjects:
          description: >-
            If true, the Extension will be mounted for all projects. If false,
            the extension will only be mounted for the projects specified by
            each mount point's projectId (mountPoints[].projectId).
          type: boolean
        enabled:
          description: >-
            If true, the Extension is mounted in the NetApp volume file context
            of the Domino UI.
          type: boolean
        fileTypes:
          description: >-
            The file types that the Extension should be mounted for in the
            NetApp volume file context.
          items:
            type: string
          type: array
        mountPoints:
          items:
            $ref: '#/components/schemas/NetAppVolumeFileContextMountPoint'
          type: array
        urlConfig:
          $ref: '#/components/schemas/MountPointTypeUrlConfig'
      required:
        - enabled
      type: object
    ProjectSidebarMountConfig:
      properties:
        allProjects:
          description: >-
            If true, the Extension will be mounted for all projects. If false,
            the extension will only be mounted for the projects specified by
            each mount point's projectId (mountPoints[].projectId).
          type: boolean
        enabled:
          description: >-
            If true, the Extension is mounted in the project sidebar of the
            Domino UI.
          type: boolean
        mountPoints:
          items:
            $ref: '#/components/schemas/ProjectSidebarMountPoint'
          type: array
        urlConfig:
          $ref: '#/components/schemas/MountPointTypeUrlConfig'
      required:
        - enabled
      type: object
    MountPointTypeUrlConfig:
      description: >-
        URL configuration for links to the Extension's runtime (i.e. Domino App)
        for a particular mount point type.
      properties:
        contextualQueryParams:
          description: >-
            Query parameters whose values should be derived by the client from
            the user's context and added to the link. If the value cannot be
            derived from context, an empty value should be passed.
          items:
            $ref: '#/components/schemas/ContextualQueryParam'
          type: array
        route:
          description: >-
            The route within the app to link to. If absent, link should be
            constructed to the app's root.
          type: string
      type: object
    DatasetFileContextMountPoint:
      description: Additional mount point information for the Dataset file context.
      properties:
        enabled:
          description: >-
            Whether the Extension is enabled for this specific mount point in
            the Dataset file context.
          type: boolean
        projectId:
          description: Project ID where the dataset file context mount point is enabled.
          type: string
      required:
        - enabled
        - projectId
      type: object
    NetAppVolumeFileContextMountPoint:
      description: Additional mount point information for the NetApp volume file context.
      properties:
        enabled:
          description: >-
            Whether the Extension is enabled for this specific mount point in
            the NetApp volume file context.
          type: boolean
        projectId:
          description: >-
            Project ID where the NetApp volume file context mount point is
            enabled.
          type: string
      required:
        - enabled
        - projectId
      type: object
    ProjectSidebarMountPoint:
      description: Additional mount point information for the project sidebar.
      properties:
        enabled:
          description: >-
            Whether the Extension is enabled for this specific mount point in
            the project sidebar.
          type: boolean
        projectId:
          description: Project ID where the project sidebar mount point is enabled.
          type: string
      required:
        - enabled
        - projectId
      type: object
    ContextualQueryParam:
      description: >-
        A query parameter whose value should be derived by the client from the
        user's context and added to the link. If the value cannot be derived
        from context, an empty value should be passed.
      enum:
        - projectId
        - netAppVolumeId
        - netAppVolumeSnapshotId
        - datasetId
        - datasetSnapshotId
        - filePath
        - modelId
        - modelVersionId
      type: string
  responses:
    '400':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Bad Request
    '401':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FailureEnvelopeV1'
      description: >-
        The current user cannot perform this operation because they are not
        logged in
    '403':
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FailureEnvelopeV1'
      description: The current user is not authorized to perform this operation
    '404':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Not Found
    '500':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Internal Server Error
  securitySchemes:
    DominoApiKey:
      in: header
      name: X-Domino-Api-Key
      type: apiKey
    BearerAuthentication:
      in: header
      name: Authorization
      type: apiKey

````