/v1/appsCreate app⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️
Deprecated: use POST /v1/services instead.
Creates a new app under the specified project. The projectId is required in the request body. The app is placed in the given region, or the project's default region if omitted (falling back to us-east-1). Returns 409 Conflict when an app already occupies the slot on the resolved branch, either by name or by logicalId; the body includes the existing app's id, name, branch, and logical id, and conflict says which attribute clashed. The name is checked first. logicalId cannot be combined with branchGitName; pass branchId instead.
Request body
application/json
branchGitNamenull | stringbranchIdnull | stringdisplayNamestringrequiredlogicalIdstringDeclared identity of the resource, unique within its branch. Set by the tool that declares the resource.
projectIdstringrequiredregionIdstring{
"branchGitName": "string",
"branchId": "string",
"displayName": "string",
"logicalId": "string",
"projectId": "string",
"regionId": "us-east-1"
}Responses
dataobjectrequiredShow child attributes
appEndpointDomainstringrequiredbranchIdnull | stringrequiredcreatedAtstring · date-timerequiredidstringrequiredlatestDeploymentIdnull | stringrequiredlogicalIdnull | stringrequirednamestringrequiredprojectIdstringrequiredregionobjectrequiredShow child attributes
idstringrequirednamestringrequiredtypestringrequiredurlstring · urirequired{
"data": {
"appEndpointDomain": "string",
"branchId": "string",
"createdAt": "2026-06-09T00:00:00Z",
"id": "string",
"latestDeploymentId": "string",
"logicalId": "string",
"name": "string",
"projectId": "string",
"region": {
"id": "string",
"name": "string"
},
"type": "app",
"url": "https://example.com"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
branchGitNamestringrequiredcodestringrequiredconflictstringWhich attribute of the existing app clashed.
existingAppIdstringrequiredlogicalIdnull | stringThe existing app's logical id.
messagestringrequirednamestringrequired{
"error": {
"branchGitName": "string",
"code": "app:already_exists",
"conflict": "logicalId",
"existingAppId": "string",
"logicalId": "string",
"message": "string",
"name": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}