Skip to content

Atlassian: Create custom project

Atlassian projectTemplates.createProjectWithCustomTemplate: arguments, response, policy and SDK examples.

← Project templates operations · Get started

Operation atlassian.createprojectwithcustomtemplate

Provider route: POST /{cloudId}/rest/api/3/project-template. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/atlassian with npm, or alter-sdk-atlassian with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { AtlassianIntegration } from "@alter-ai/atlassian";
async function execute(input: Parameters<AtlassianIntegration["projectTemplates"]["createProjectWithCustomTemplate"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new AtlassianIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.projectTemplates.createProjectWithCustomTemplate(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_atlassian import AtlassianIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = AtlassianIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.project_templates.create_project_with_custom_template(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.cloudIdstringRequired within parentPattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
bodyModelRequired within parentExpand Create custom project — request body — body

Referenced models: Create custom project — request body — body

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$JSONRoot

50 more schemas are linked from the tables above, on the schema pages.

Create custom project — request body — body
FieldTypePresenceDescription and constraints
$objectRootRequest to create a project using a custom template
Additional keys: not allowed
detailsModelOptionalExpand Create custom project — request body — body details
templateModelOptionalExpand Create custom project — request body — body template

Referenced models: Create custom project — request body — body template, Create custom project — request body — body details

Create custom project — request body — body template
FieldTypePresenceDescription and constraints
$objectRootThe specific request object for creating a project with template.
Additional keys: not allowed
boardFeaturesModelOptionalExpand Create custom project — request body — body template board Features
boardsModelOptionalExpand Create custom project — request body — body template boards
fieldModelOptionalExpand Create custom project — request body — body template field
issueTypeModelOptionalExpand Create custom project — request body — body template issue Type
notificationModelOptionalExpand Create custom project — request body — body template notification
permissionSchemeModelOptionalExpand Create custom project — request body — body template permission Scheme
projectModelOptionalExpand Create custom project — request body — body template project
roleModelOptionalExpand Create custom project — request body — body template role
scopeModelOptionalExpand Create custom project — request body — body template scope
securityModelOptionalExpand Create custom project — request body — body template security
workflowModelOptionalExpand Create custom project — request body — body template workflow

Referenced models: Create custom project — request body — body template board Features, Create custom project — request body — body template boards, Create custom project — request body — body template field, Create custom project — request body — body template issue Type, Create custom project — request body — body template notification, Create custom project — request body — body template permission Scheme, Create custom project — request body — body template project, Create custom project — request body — body template role, Create custom project — request body — body template scope, Create custom project — request body — body template security, Create custom project — request body — body template workflow

Create custom project — request body — body details
FieldTypePresenceDescription and constraints
$objectRootProject Details
Additional keys: not allowed
accessLevelstringOptionalThe access level of the project. Only used by team-managed project
One of: open, limited, private, free
additionalPropertiesobjectOptionalAdditional properties of the project
Additional keys: see wildcard field
additionalProperties.*stringAdditional keysAdditional properties of the project
assigneeTypestringOptionalThe default assignee when creating issues in the project
One of: PROJECT_DEFAULT, COMPONENT_LEAD, PROJECT_LEAD, UNASSIGNED
avatarIdintegerOptionalThe ID of the project's avatar. Use the \[Get project avatars\](\#api-rest-api-3-project-projectIdOrKey-avatar-get) operation to list the available avatars in a project.
Format: int64
categoryIdintegerOptionalThe ID of the project's category. A complete list of category IDs is found using the [Get all project categories](#api-rest-api-3-projectCategory-get) operation.
Format: int64
descriptionstringOptionalBrief description of the project
enableComponentsbooleanOptionalWhether components are enabled for the project. Only used by company-managed project
Default: false
keystringOptionalProject keys must be unique and start with an uppercase letter followed by one or more uppercase alphanumeric characters. The maximum length is 10 characters.
languagestringOptionalThe default language for the project
leadAccountIdstringOptionalThe account ID of the project lead. Either `lead` or `leadAccountId` must be set when creating a project. Cannot be provided with `lead`.
namestringOptionalName of the project
urlstringOptionalA link to information about this project, such as project documentation
Create custom project — request body — body template board Features
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)objectAlternativeConfiguration of features for one or more boards. Replaces the deprecated features field on BoardPayload
Additional keys: not allowed
$ (anyOf 1).boardFeaturesobjectOptionalA map of board PCRIs to the list of features to enable on each board.
Additional keys: see wildcard field
$ (anyOf 1).boardFeatures.*arrayAdditional keysA map of board PCRIs to the list of features to enable on each board.
$ (anyOf 1).boardFeatures.*[]ModelEach itemExpand Create custom project — request body — body template board Features board Features board Features value item
$ (anyOf 2)nullAlternative

Referenced models: Create custom project — request body — body template board Features board Features board Features value item

Create custom project — request body — body template boards
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)objectAlternativeAdditional keys: not allowed
$ (anyOf 1).boardsarrayOptionalThe boards to be associated with the project.
$ (anyOf 1).boards[]ModelEach itemExpand Create custom project — request body — body template boards boards boards item
$ (anyOf 2)nullAlternative

Referenced models: Create custom project — request body — body template boards boards boards item

Create custom project — request body — body template notification
FieldTypePresenceDescription and constraints
$JSONRoot
$ (anyOf 1)objectAlternativeThe payload for creating a notification scheme. The user has to supply the ID for the default notification scheme. For CMP this is provided in the project payload and should be left empty, for TMP it's provided using this payload
Additional keys: not allowed
$ (anyOf 1).descriptionstringOptionalThe description of the notification scheme
$ (anyOf 1).namestringOptionalThe name of the notification scheme
$ (anyOf 1).notificationSchemeEventsarrayOptionalThe events and notifications for the notification scheme
$ (anyOf 1).notificationSchemeEvents[]ModelEach itemExpand Create custom project — request body — body / template / notification / onConflict: FAIL, USE, NEW notification Scheme Events item
$ (anyOf 1).onConflictstringOptionalThe strategy to use when there is a conflict with an existing entity
One of: FAIL, USE, NEW
$ (anyOf 1).pcriModelOptionalExpand Create custom project — request body — body template project pcri
$ (anyOf 2)nullAlternative

Referenced models: Create custom project — request body — body / template / notification / onConflict: FAIL, USE, NEW notification Scheme Events item, Create custom project — request body — body template project pcri

Create custom project — request body — body template boards boards boards item card Layout
FieldTypePresenceDescription and constraints
$objectRootCard layout configuration.
Additional keys: not allowed
showDaysInColumnbooleanOptionalWhether to show days in column
Default: false
One of: true, false

SDK function policy ID: atlassian.createprojectwithcustomtemplate. Catalog operation: createprojectwithcustomtemplate. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Required provider scopes: ["manage:jira-configuration"]

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.