---
title: "Copies a task"
method: POST
path: "/api/v2/tasks/copy"
tags: ["Tasks"]
---

# Copies a task

`POST /api/v2/tasks/copy`

Creates a new task by copying a **source task** (`template_id`) into a target project, task list, and workflow status. By default only the task shell is copied; enable the `copy_*` flags to duplicate its details.

Required: `title`, `template_id` (the source task), `project_id`, `task_list_id`, `workflow_status_id`, and `private`.

Set `parent_task_id` to copy the source as a **subtask** under another task. Set `copy_as_task_template: true` together with `template_description` to save the result as a reusable task template.

### Copy flags

All `copy_*` flags default to `false`. Each flag is evaluated independently — the source task is always copied; the flags control which related data follows.

| Flag(s) | Prerequisite | Notes |
|---|---|---|
| `copy_open_subtasks`, `copy_closed_subtasks` | — | Recursive — subtask copying respects the same `copy_*` flags |
| `copy_open_todos`, `copy_closed_todos` | — | — |
| `copy_comments`, `copy_description`, `copy_attachments`, `copy_subscribers` | — | — |
| `copy_assignee`, `copy_tags`, `copy_date`, `copy_repeat`, `copy_estimate` | — | — |
| `copy_task_dependencies` | — | Blocking, waiting-on, and linked |
| `copy_custom_fields` | — | Task custom field values |
| `copy_as_task_template` | — | Registers the result as a reusable task template |

`private: true` rejects `copy_open_subtasks`, `copy_closed_subtasks`, and `copy_as_task_template` (`422 task_private_not_allowed`). `copy_as_task_template: true` rejects `copy_task_dependencies` (`422 task_dependencies_not_allowed_on_template`).

### Minimal copy (shell only)
```json
{
  "data": {
    "type": "tasks",
    "attributes": {
      "title": "New empty task from source",
      "template_id": 5560123,
      "project_id": 31002,
      "task_list_id": 7781,
      "workflow_status_id": 101,
      "private": false
    }
  }
}
```

### Full copy with task details
```json
{
  "data": {
    "type": "tasks",
    "attributes": {
      "title": "Onboarding checklist — Acme",
      "template_id": 5560123,
      "project_id": 31002,
      "task_list_id": 7781,
      "workflow_status_id": 101,
      "private": false,
      "copy_assignee": true,
      "copy_date": true,
      "copy_repeat": true,
      "copy_estimate": true,
      "copy_description": true,
      "copy_tags": true,
      "copy_subscribers": true,
      "copy_attachments": true,
      "copy_comments": true,
      "copy_custom_fields": true,
      "copy_open_todos": true,
      "copy_open_subtasks": true,
      "copy_task_dependencies": true
    }
  }
}
```

## Headers

- `X-Organization-Id` string, required

## Response `201`

Single task

## Other responses

- `422` — Unprocessable Entity

---

[API](https://skmtc.net/productive/apis/api-documentation.md) · [All operations](https://skmtc.net/productive/apis/api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/productive/api-documentation/versions/6bb0150a5c5f/schema)
