Create project with template
Create a new project from an existing project template. The template's states, labels, estimates, modules, and work items are copied into the new project. Fields provided in the request body override the template defaults.
Path Parameters
workspace_slug:requiredstringThe workspace_slug represents the unique workspace identifier for a workspace in Plane. It can be found in the URL. For example, in the URL https://app.plane.so/my-team/projects/, the workspace slug is my-team.
Body Parameters
template_id:requiredstringThe ID of the project template to instantiate. Must belong to the same workspace.
name:optionalstringName of the new project. Overrides the template default.
identifier:optionalstringShort identifier for the project (e.g. MAR). Overrides the template default.
description:optionalstringDescription of the new project. Overrides the template default.
network:optionalintegerNetwork visibility of the project. 0 for secret, 2 for public. Overrides the template default.
project_lead:optionalstringUser ID of the project lead. The lead is added as a project admin. Overrides the template default.
Scopes
write or projects:write
curl -X POST \
"https://api.plane.so/api/v1/workspaces/my-workspace/projects/templates/use/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"template_id": "7a2d3972-80a5-4ac5-8bb5-03026671826a",
"name": "Mobile App Revamp",
"identifier": "MAR",
"description": "Project created from the Agile Project Setup template",
"network": 2,
"project_lead": "0d8d8869-3ed1-4fb4-b5c4-ff672888f5e2"
}'import requests
response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/projects/templates/use/",
headers={"X-API-Key": "your-api-key"},
json={
"template_id": "7a2d3972-80a5-4ac5-8bb5-03026671826a",
"name": "Mobile App Revamp",
"identifier": "MAR",
"description": "Project created from the Agile Project Setup template",
"network": 2,
"project_lead": "0d8d8869-3ed1-4fb4-b5c4-ff672888f5e2"
}
)
print(response.json())const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/templates/use/", {
method: "POST",
headers: {
"X-API-Key": "your-api-key",
"Content-Type": "application/json",
},
body: JSON.stringify({
template_id: "7a2d3972-80a5-4ac5-8bb5-03026671826a",
name: "Mobile App Revamp",
identifier: "MAR",
description: "Project created from the Agile Project Setup template",
network: 2,
project_lead: "0d8d8869-3ed1-4fb4-b5c4-ff672888f5e2",
}),
});
const data = await response.json();{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Mobile App Revamp",
"description": "Project created from the Agile Project Setup template",
"identifier": "MAR",
"network": 2,
"project_lead": "0d8d8869-3ed1-4fb4-b5c4-ff672888f5e2",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
