> ## 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 a project

> Create a project. Required permissions: `CreateProject, UseFileStorage`.



## OpenAPI

````yaml /api-specs/6.3/public-api.yaml post /api/projects/v2/projects
openapi: 3.0.3
info:
  title: Domino Public API
  description: Domino Public API Endpoints
  version: 6.2.2
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: GenAI
  - name: HardwareTier
  - name: Jobs
  - name: ModelAPI
  - name: ModelAPIVersion
  - name: ModelDeployment
  - name: Organizations
  - name: PPM
  - name: ProjectSharedDatasets
  - name: ProjectTemplates
  - name: Projects
  - name: ProjectsFiles
  - name: RegisteredModels
  - name: ServiceAccounts
  - name: Users
  - name: Workspaces
paths:
  /api/projects/v2/projects:
    post:
      tags:
        - Projects
      summary: Create a project
      description: 'Create a project. Required permissions: `CreateProject, UseFileStorage`.'
      operationId: createProjectV2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewProjectV2'
        description: Project to create
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectEnvelopeV1'
          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:
    NewProjectV2:
      properties:
        billingTag:
          $ref: '#/components/schemas/BillingTagV1'
        description:
          description: Project description.
          type: string
        isRestricted:
          description: >-
            Optional flag for setting a new project as restricted.
            ProjectClassifier permission required for use.
          type: boolean
        mainRepository:
          $ref: '#/components/schemas/NewProjectGitRepositoryV1'
        name:
          description: >-
            Name of this project. The name must be unique and cannot contain
            white space.
          type: string
        ownerId:
          description: >-
            Optional Id of a user to own this project. Defaults to the calling
            user if not provided. Does not currently support creating projects
            owned by Organizations.
          type: string
        repoToCreate:
          $ref: '#/components/schemas/RepoToCreateV2'
        templateDetails:
          $ref: '#/components/schemas/ProjectTemplateDetailsV1'
        visibility:
          $ref: '#/components/schemas/ProjectVisibilityV1'
      required:
        - name
        - description
        - visibility
      type: object
    ProjectEnvelopeV1:
      properties:
        metadata:
          $ref: '#/components/schemas/MetadataV1'
        project:
          $ref: '#/components/schemas/ProjectV1'
      required:
        - project
        - metadata
      type: object
    BillingTagV1:
      description: Billing Tag to assign to projects for cost aggregation
      properties:
        tag:
          description: The tag to be assigned to projects.
          type: string
      required:
        - tag
      type: object
    NewProjectGitRepositoryV1:
      properties:
        defaultRef:
          $ref: '#/components/schemas/ProjectRepositoryReferenceV1'
        gitCredentialId:
          description: >-
            Id of the git creds to use for the repo. Credentials only apply for
            the current user, and other users will need to add their own unique
            creds.
          type: string
        name:
          description: Optional name of the repository in the project
          type: string
        serviceProvider:
          $ref: '#/components/schemas/GitServiceProviderV1'
        uri:
          description: URI of the repository origin
          example: https://github.com/torvalds/linux
          type: string
      required:
        - uri
      type: object
    RepoToCreateV2:
      description: An object representing a new git repo to create in a remote repository
      properties:
        credentialId:
          pattern: ^[0-9a-f]{24}$
          type: string
        owner:
          type: string
        repositoryToCreateName:
          type: string
        serviceProvider:
          $ref: '#/components/schemas/GitServiceProviderV1'
        visibility:
          $ref: '#/components/schemas/ProviderRepoVisibilityV1'
      required:
        - credentialId
        - repositoryToCreateName
        - owner
        - visibility
      type: object
    ProjectTemplateDetailsV1:
      properties:
        forceImport:
          description: >-
            optional flag to force import the template code into the main repo,
            overwriting all git history
          type: boolean
        importToMainRepo:
          description: >-
            optional flag to import the template code to the main repo, Github
            only
          type: boolean
        name:
          description: name of the template
          example: ImageNet Classifier
          type: string
        templateId:
          description: id of the template
          example: templateId
          type: string
        templateRevisionId:
          description: optional id of the revision of the template
          type: string
        templateType:
          description: Specifying "ecosystem" or "customer" template type
          type: string
      required:
        - name
        - templateId
      type: object
    ProjectVisibilityV1:
      description: Project visibility
      enum:
        - public
        - searchable
        - private
      type: string
    MetadataV1:
      properties:
        notices:
          description: Notices relating to the request
          items:
            type: string
          type: array
        requestId:
          type: string
      required:
        - requestId
        - notices
      type: object
    ProjectV1:
      properties:
        billingTag:
          $ref: '#/components/schemas/BillingTagV1'
        collaborators:
          description: List of collaborators, if any
          items:
            $ref: '#/components/schemas/ProjectCollaboratorV1'
          type: array
        description:
          description: A description of the project
          type: string
        id:
          description: Project ID
          example: 626046fcb7e5d347dbe7a904
          type: string
        internalTags:
          description: Optional list of strings containing internal tags of project
          items:
            type: string
          type: array
        isRestricted:
          description: Whether a project is restricted
          type: boolean
        mainRepository:
          $ref: '#/components/schemas/ProjectGitRepositoryV1'
        name:
          description: Name of the project
          example: My Project
          type: string
        ownerId:
          description: userId of the project owner
          example: 662604702b7e5d347dbe7a908
          type: string
        ownerUsername:
          description: username of the project owner
          example: steve_holt
          type: string
        visibility:
          $ref: '#/components/schemas/ProjectVisibilityV1'
      required:
        - id
        - name
        - description
        - visibility
        - ownerId
        - ownerUsername
        - collaborators
        - isRestricted
      type: object
    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
    ProjectRepositoryReferenceV1:
      properties:
        refType:
          $ref: '#/components/schemas/GitReferenceTypeV1'
        value:
          type: string
      required:
        - refType
      type: object
    GitServiceProviderV1:
      description: Git service provider
      enum:
        - bitbucket
        - bitbucketServer
        - github
        - githubEnterprise
        - gitLab
        - gitLabEnterprise
        - unknown
      type: string
    ProviderRepoVisibilityV1:
      description: >-
        The visibility of the code repo. Internal can only be used for Github
        Enterprise.
      enum:
        - public
        - private
        - internal
      type: string
    ProjectCollaboratorV1:
      properties:
        id:
          description: userId of collaborating user or organization
          example: 662604702b7e5d347dbe7a908
          type: string
        role:
          description: Collaborator's role in the project
          enum:
            - contributor
            - launcherUser
            - resultsConsumer
            - projectImporter
          type: string
      required:
        - id
        - role
      type: object
    ProjectGitRepositoryV1:
      properties:
        defaultRef:
          $ref: '#/components/schemas/ProjectRepositoryReferenceV1'
        id:
          description: Id of the repository
          example: 62604702b7e5d347dbe7a908
          type: string
        name:
          description: >-
            Optional name of the repository in the project. If not provided, a
            name will be inferred from the URL
          type: string
        serviceProvider:
          $ref: '#/components/schemas/GitServiceProviderV1'
        uri:
          description: URI of the repository origin
          example: https://github.com/torvalds/linux
          type: string
      required:
        - id
        - uri
        - defaultRef
        - serviceProvider
      type: object
    GitReferenceTypeV1:
      enum:
        - head
        - branch
        - tag
        - commit
      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

````