---
title: "Create a new project"
method: POST
path: "/workspaces/{workspace_domain}/projects"
tags: ["Project API"]
---

# Create a new project

`POST /workspaces/{workspace_domain}/projects`

## Path parameters

- `workspace_domain` string, required

## Request body

- union
  - CreateBuddyProjectRequest
    - `name` string — The human-readable ID of the project
    - `display_name` string, required — The Name of the project
    - `access` 'PRIVATE' | 'PUBLIC' — Indicates if this is a public project
    - `fetch_submodules` boolean — Defines whether the submodules are fetched during the runs in this project
    - `fetch_submodules_env_key` string — Name of the key that will be used to authorize while fetching the submodules. Required when `fetch_submodules` is set to `true`
    - `allow_pull_requests` boolean — Enables/disables pull requests in the project. Available only for projects synchronized with GitHub or GitHub Enterprise repository
    - `without_repository` boolean — If set to true, the project is created without any repository attached.
  - CreateIntegratedProjectRequest
    - `name` string — The human-readable ID of the project
    - `display_name` string, required — The Name of the project
    - `external_project_id` string, required — Repo slug of the Bitbucket, GitHub or GitLab project. Required when adding the integrated project
    - `git_lab_project_id` integer — ID of the project in GitLab
    - `access` 'PRIVATE' | 'PUBLIC' — Indicates if this is a public project
    - `integration` IntegrationRequestView, required — Helm repository integration (GOOGLE_SERVICE_ACCOUNT|AMAZON)
      - `identifier` string — A human-readable ID of the integration
    - `fetch_submodules` boolean — Defines whether the submodules are fetched during the runs in this project
    - `fetch_submodules_env_key` string — Name of the key that will be used to authorize while fetching the submodules. Required when `fetch_submodules` is set to `true`
    - `allow_pull_requests` boolean — Enables/disables pull requests in the project. Available only for projects synchronized with GitHub or GitHub Enterprise repository
    - `update_default_branch_from_external` boolean — If set to true, the default branch will be updated from GitHub/GitLab/Bitbucket.
  - CreateCustomRepoProjectRequest
    - `name` string — The human-readable ID of the project
    - `display_name` string, required — The Name of the project
    - `custom_repo_url` string, required — SSH or HTTPS url of the git repository. Required when adding the project integrated with custom git repository
    - `custom_repo_user` string — Username used to authorize access to the git repository. Required when adding the project integrated with custom git repository
    - `custom_repo_pass` string — Password used to authorize access to the git repository. Required when adding the project integrated with custom git repository and the provided `custom_repo_url` is the HTTPS url
    - `custom_repo_ssh_key_id` integer — The ID of the private SSH key used to authorize access to the git repository. Required when adding the project integrated with private git server by SSH url
    - `access` 'PRIVATE' | 'PUBLIC' — Indicates if this is a public project
    - `fetch_submodules` boolean — Defines whether the submodules are fetched during the runs in this project
    - `fetch_submodules_env_key` string — Name of the key that will be used to authorize while fetching the submodules. Required when `fetch_submodules` is set to `true`

## Response `201`

- ProjectView
  - `url` string — API endpoint to GET this object
  - `html_url` string — Web URL to view this object in Buddy.works
  - `name` string — The human-readable ID of the project
  - `display_name` string, required — The Name of the project
  - `status` string — The status of the project
  - `access` 'PRIVATE' | 'PUBLIC' — Indicates if this is a public project
  - `create_date` string, date-time — The creation date of the project
  - `external_project_id` string — Repo slug of the Bitbucket, GitHub or GitLab project. Required when adding the integrated project
  - `git_lab_project_id` integer — ID of the project in GitLab
  - `custom_repo_url` string — SSH or HTTPS url of the git repository. Required when adding the project integrated with custom git repository
  - `custom_repo_user` string — Username used to authorize access to the git repository. Required when adding the project integrated with custom git repository
  - `custom_repo_pass` string — Password used to authorize access to the git repository. Required when adding the project integrated with custom git repository and the provided `custom_repo_url` is the HTTPS url
  - `custom_repo_ssh_key_id` integer — The ID of the private SSH key used to authorize access to the git repository. Required when adding the project integrated with private git server by SSH url
  - `created_by` MemberView — User/member reference
    - `url` string — API endpoint to GET this object
    - `html_url` string — Web URL to view this object in Buddy.works
    - `id` integer — The ID of the user
    - `name` string — The name of the user
    - `avatar_url` string — The avatar URL of the user
    - `email` string — The email address of the user
    - `admin` boolean — Whether the user has admin privileges
    - `workspace_owner` boolean — Whether the user is workspace owner
  - `http_repository` string — The HTTP repository URL
  - `ssh_repository` string — The SSH repository URL
  - `default_branch` string — The default branch name
  - `integration` IntegrationIdView — Integration reference
    - `url` string — API endpoint to GET this object
    - `html_url` string — Web URL to view this object in Buddy.works
    - `identifier` string — A human-readable ID of the integration
    - `hash_id` string — The unique hash ID of the integration
    - `name` string — The name of the integration
    - `type` 'GIT_HUB' | 'BITBUCKET' | 'GOOGLE' | 'DIGITAL_OCEAN' | 'SLACK' | 'MODULUS' | 'HEROKU' | 'AMAZON' | 'GIT_LAB' | 'SHOPIFY' | 'GIT_HUB_ENTERPRISE' | 'GIT_LAB_ENTERPRISE' | 'PUSHOVER' | 'PUSHBULLET' | 'RACKSPACE' | 'CUSTOM' | 'CLOUDFLARE' | 'NEW_RELIC' | 'SENTRY' | 'ROLLBAR' | 'DATADOG' | 'DO_SPACES' | 'HONEYBADGER' | 'VULTR' | 'SENTRY_ENTERPRISE' | 'LOGGLY' | 'HIP_CHAT' | 'FIREBASE' | 'TELEGRAM' | 'AZURE' | 'UPCLOUD' | 'GHOST_INSPECTOR' | 'NETLIFY' | 'AZURE_CLOUD' | 'MICROSOFT_TEAMS' | 'GOOGLE_SERVICE_ACCOUNT' | 'GOOGLE_PLAY_STORE' | 'DOCKER_HUB' | 'APP_STORE' | 'GIT_HUB_APP' | 'GIT_HUB_APP_ENTERPRISE' | 'GIT_HUB_API' | 'ATOP' | 'SNYK' | 'STACK_HAWK' | 'BLACKFIRE' | 'BACKBLAZE' | 'ONE_LOGIN' | 'OKTA' | 'CONTENTFUL' | 'JIRA' | 'NPM_REGISTRY' | 'ANTHROPIC' | 'GOOGLE_GEMINI' — The type of integration
    - `auth_type` 'OAUTH' | 'TOKEN' | 'API_KEY' | 'APP' | 'APP_SPRYKER' | 'TOKEN_APP_EXTENSION' | 'DEFAULT' | 'OIDC' | 'TRUSTED' | 'APP_RW' — The authentication method used by the integration
    - `host_url` string — The host URL for custom integrations
    - `webhook_address` string — The webhook URL for receiving notifications
    - `atop_url` string — The ATOP service URL
    - `app_id` string — The application ID for Azure Cloud integrations
    - `google_project` string — The Google Cloud project ID
    - `audience` string — The JWT audience for token validation
  - `fetch_submodules` boolean — Defines whether the submodules are fetched during the runs in this project
  - `fetch_submodules_env_key` string — Name of the key that will be used to authorize while fetching the submodules. Required when `fetch_submodules` is set to `true`
  - `allow_pull_requests` boolean — Enables/disables pull requests in the project. Available only for projects synchronized with GitHub or GitHub Enterprise repository
  - `update_default_branch_from_external` boolean — If set to true, the default branch will be updated from GitHub/GitLab/Bitbucket.
  - `without_repository` boolean — If set to true, the project is created without any repository attached.

---

[API](https://skmtc.net/buddy/apis/buddy-api.md) · [All operations](https://skmtc.net/buddy/apis/buddy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/buddy/buddy-api/revisions/2426d67c249a/schema)
