ZITADEL Docs
APIsCore ResourcesV2Project

CreateProject

Create Project

Create a new project. A project is a vessel to group applications, roles and authorizations. Every project belongs to exactly one organization, but can be granted to other organizations for self-management of their authorizations.

Required permission:

  • project.create
POST
/zitadel.project.v2.ProjectService/CreateProject

Header Parameters

Connect-Protocol-Version*number

Define the version of the Connect protocol

Value in1
Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/json

organizationId*string

OrganizationID is the unique identifier of the organization the project belongs to.

projectId?string

ProjectID is the unique identifier of the new project. This field is optional. If omitted, the system will generate a unique ID for you. This is the recommended way. The generated ID will be returned in the response.

name*string

Name of the project. This might be presented to users, e.g. in sign-in flows.

projectRoleAssertion?boolean

ProjectRoleAssertion is a setting that can be enabled to have role information included in the user info endpoint. It is also dependent on your application settings to include it in tokens and other types.

authorizationRequired?boolean

AuthorizationRequired is a boolean flag that can be enabled to check if a user has an authorization to use this project assigned when login into an application of this project.

projectAccessRequired?boolean

ProjectAccessRequired is a boolean flag that can be enabled to check if the organization of the user, that is trying to log in, has access to this project (either owns the project or is granted).

privateLabelingSetting?string

PrivateLabelingSetting is a setting that defines which private labeling/branding should trigger when getting to a login of this project.

Value in"PRIVATE_LABELING_SETTING_UNSPECIFIED" | "PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY" | "PRIVATE_LABELING_SETTING_ALLOW_LOGIN_USER_RESOURCE_OWNER_POLICY"
[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://loading/zitadel.project.v2.ProjectService/CreateProject" \  -H "Connect-Protocol-Version: 1" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "string",    "name": "string"  }'
{
  "projectId": "string",
  "creationDate": "1s"
}
{
  "code": "not_found",
  "message": "string",
  "detail": {
    "type": "string",
    "value": "string",
    "debug": {}
  }
}

Was this page helpful?