Endpoint#
| Property | Value |
|---|
| Type | mutation |
| Method | POST |
| Path | /api/external/v1/project_templates/duplicate |
| Handler | OperatelyWeb.Api.ProjectTemplates.Duplicate |
Authentication#
- Requires a valid API token.
- Requires a write-enabled token.
- Read-only tokens return
403.
| Field | Type | Required | Nullable | Default |
|---|
id | id primitive (encoded as string) | Yes | No | - |
name | string | Yes | No | - |
Outputs#
| Field | Type | Required | Nullable |
|---|
template | project_template object | Yes | No |
cURL Example#
Copiedcurl --request POST \
--url "https://app.operately.com/api/external/v1/project_templates/duplicate" \
--header "Authorization: Bearer ${OPERATELY_API_TOKEN}" \
--header "Content-Type: application/json" \
--data '{"id":"value", "name":"value"}'
Response Example#
{
"template": {
"__typename": "value",
"archived_at": "2026-01-01T09:30:00Z",
"creator": "<person>",
"description": "value",
"discussions": [
"<project_template_discussion>"
],
"duration_days": 123,
"id": "value",
"inactive_discussion_count": 123,
"inactive_people_summary": "<project_template_inactive_people_summary>",
"inserted_at": "2026-01-01T09:30:00Z",
"milestone_count": 123,
"milestones": [
"<project_template_milestone>"
],
"milestones_ordering_state": [
"value"
],
"name": "value",
"people": [
"<project_template_person>"
],
"permissions": "<project_template_permissions>",
"resource_nodes": [
"<project_template_resource_node>"
],
"space": "<space>",
"task_assignments": [
"<project_template_task_assignment>"
],
"task_count": 123,
"task_statuses": [
"<task_status>"
],
"tasks": [
"<project_template_task>"
],
"tasks_kanban_state": "value",
"updated_at": "2026-01-01T09:30:00Z"
}
}