v1
latestOpenAPI 3.1.02026-08-066484183.6 MBTemplates
Create a template
Create a new template. The attributes.target_type field is a discriminator that selects one of four creation paths, each with its own required model_attributes shape and permission check.
| target_type | Creates | Required model_attributes keys | Permission |
|---|---|---|---|
| project | Empty workspace (no copy support — see /projects/copy) | client_id, project_manager_id, project_type_id, workflow_id | projects.manage (project manager) |
| budget | New quote (or copies one when target_id is set) | none required; optional editor_config, tracking_type_id, color_id | can_manage_budgets? |
| deal | New quote (or copies one when target_id is set) | none required; optional editor_config, color_id, retainer_interval / retainer_interval_count (retainer feature only) | can_manage_deals? |
| page | New page (or copies one when target_id is set); supports copy_attributes.copy_memberships and copy_attributes.copy_subpages | none | can_manage_docs? |
Create a project template (fresh workspace)
{
"data": {
"type": "templates",
"attributes": {
"name": "Onboarding playbook",
"description": "Standard intake project for new clients.",
"target_type": "project",
"model_attributes": {
"client_id": 412,
"project_manager_id": 13,
"project_type_id": 2,
"workflow_id": 1,
"project_color_id": 5
}
}
}
}
Create a budget template (fresh quote)
{
"data": {
"type": "templates",
"attributes": {
"name": "Standard retainer scaffold",
"target_type": "budget",
"model_attributes": {
"tracking_type_id": 1,
"color_id": 5
}
}
}
}
Create a budget template by copying an existing budget
{
"data": {
"type": "templates",
"attributes": {
"name": "Q3 enterprise migration template",
"target_type": "budget",
"target_id": "98231",
"model_attributes": { "color_id": 5 }
}
}
}
Create a deal template
{
"data": {
"type": "templates",
"attributes": {
"name": "Standard outbound deal",
"target_type": "deal",
"model_attributes": {
"color_id": 5,
"retainer_interval": "month",
"retainer_interval_count": 12
}
}
}
}
Create a page template by copying an existing page
{
"data": {
"type": "templates",
"attributes": {
"name": "Engineering RFC template",
"target_type": "page",
"target_id": "55421",
"copy_attributes": { "copy_memberships": false, "copy_subpages": true }
}
}
}
Save as Template — to create a project template from an existing project (boards, tasks, settings copied), use POST /projects/copy with attributes.copy_as_template: true. The target_type=project path on this endpoint only creates a fresh, empty template.
post/api/v2/templates
Headers
X-Organization-Idstring required
Organization ID
Response
Successful response containing the requested template.