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.
Call through Alter
Section titled “Call through Alter”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 osfrom alter_sdk import Appfrom 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()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.cloudId | string | Required within parent | Pattern: ^[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}$ |
body | Model | Required within parent | Expand Create custom project — request body — body |
Referenced models: Create custom project — request body — body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root |
Schemas
Section titled “Schemas”50 more schemas are linked from the tables above, on the schema pages.
Create custom project — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Request to create a project using a custom template Additional keys: not allowed |
details | Model | Optional | Expand Create custom project — request body — body details |
template | Model | Optional | Expand 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
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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Project Details Additional keys: not allowed |
accessLevel | string | Optional | The access level of the project. Only used by team-managed project One of: open, limited, private, free |
additionalProperties | object | Optional | Additional properties of the project Additional keys: see wildcard field |
additionalProperties.* | string | Additional keys | Additional properties of the project |
assigneeType | string | Optional | The default assignee when creating issues in the project One of: PROJECT_DEFAULT, COMPONENT_LEAD, PROJECT_LEAD, UNASSIGNED |
avatarId | integer | Optional | The 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 |
categoryId | integer | Optional | The 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 |
description | string | Optional | Brief description of the project |
enableComponents | boolean | Optional | Whether components are enabled for the project. Only used by company-managed project Default: false |
key | string | Optional | Project keys must be unique and start with an uppercase letter followed by one or more uppercase alphanumeric characters. The maximum length is 10 characters. |
language | string | Optional | The default language for the project |
leadAccountId | string | Optional | The account ID of the project lead. Either `lead` or `leadAccountId` must be set when creating a project. Cannot be provided with `lead`. |
name | string | Optional | Name of the project |
url | string | Optional | A link to information about this project, such as project documentation |
Create custom project — request body — body template board Features
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
$ (anyOf 1) | object | Alternative | Configuration of features for one or more boards. Replaces the deprecated features field on BoardPayload Additional keys: not allowed |
$ (anyOf 1).boardFeatures | object | Optional | A map of board PCRIs to the list of features to enable on each board. Additional keys: see wildcard field |
$ (anyOf 1).boardFeatures.* | array | Additional keys | A map of board PCRIs to the list of features to enable on each board. |
$ (anyOf 1).boardFeatures.*[] | Model | Each item | Expand Create custom project — request body — body template board Features board Features board Features value item |
$ (anyOf 2) | null | Alternative |
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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
$ (anyOf 1) | object | Alternative | Additional keys: not allowed |
$ (anyOf 1).boards | array | Optional | The boards to be associated with the project. |
$ (anyOf 1).boards[] | Model | Each item | Expand Create custom project — request body — body template boards boards boards item |
$ (anyOf 2) | null | Alternative |
Referenced models: Create custom project — request body — body template boards boards boards item
Create custom project — request body — body template notification
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
$ (anyOf 1) | object | Alternative | The 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).description | string | Optional | The description of the notification scheme |
$ (anyOf 1).name | string | Optional | The name of the notification scheme |
$ (anyOf 1).notificationSchemeEvents | array | Optional | The events and notifications for the notification scheme |
$ (anyOf 1).notificationSchemeEvents[] | Model | Each item | Expand Create custom project — request body — body / template / notification / onConflict: FAIL, USE, NEW notification Scheme Events item |
$ (anyOf 1).onConflict | string | Optional | The strategy to use when there is a conflict with an existing entity One of: FAIL, USE, NEW |
$ (anyOf 1).pcri | Model | Optional | Expand Create custom project — request body — body template project pcri |
$ (anyOf 2) | null | Alternative |
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
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Card layout configuration. Additional keys: not allowed |
showDaysInColumn | boolean | Optional | Whether to show days in column Default: false One of: true, false |
Policy, approvals and errors
Section titled “Policy, approvals and errors”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"]