Endpoint#
| Property | Value |
|---|
| Type | mutation |
| Method | POST |
| Path | /api/external/v1/project_templates/create |
| Handler | OperatelyWeb.Api.ProjectTemplates.Create |
Authentication#
- Requires a valid API token.
- Requires a write-enabled token.
- Read-only tokens return
403.
| Field | Type | Required | Nullable | Default |
|---|
space_id | id primitive (encoded as string) | Yes | No | - |
name | string | Yes | No | - |
description | json primitive (encoded as string) | No | Yes | - |
duration_days | integer | No | Yes | - |
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/create" \
--header "Authorization: Bearer ${OPERATELY_API_TOKEN}" \
--header "Content-Type: application/json" \
--data '{"description":"value", "duration_days":123, "name":"value", "space_id":"value"}'
Response Example#
{
"template": {
"__typename": "value",
"archived_at": "2026-01-01T09:30:00Z",
"creator": "<person>",
"description": "value",
"duration_days": 123,
"id": "value",
"inserted_at": "2026-01-01T09:30:00Z",
"milestone_count": 123,
"milestones": [
"<project_template_milestone>"
],
"milestones_ordering_state": [
"value"
],
"name": "value",
"space": "<space>",
"task_count": 123,
"task_statuses": [
"<task_status>"
],
"tasks": [
"<project_template_task>"
],
"tasks_kanban_state": "value",
"updated_at": "2026-01-01T09:30:00Z"
}
}