---
title: "Copies a project"
method: POST
path: "/api/v2/projects/copy"
tags: ["Projects"]
---

# Copies a project

`POST /api/v2/projects/copy`

Creates a new project by copying an existing **source project**. Use `copy_as_template: true` to mark the result as a project template.

### Copy flags

All `copy_*` flags default to `false`. A flag with a prerequisite requires the listed parent flag(s) to also be enabled.

| Flag(s) | Prerequisite | Notes |
|---|---|---|
| `copy_boards` | — | Required by `copy_task_lists` |
| `copy_task_lists` | `copy_boards` | Required by `copy_open_tasks`, `copy_closed_tasks` |
| `copy_open_tasks`, `copy_closed_tasks` | `copy_task_lists` | Required by per-task flags below |
| `copy_memberships` | — | Required by `copy_assignees`, `copy_task_subscribers` |
| `copy_assignees`, `copy_task_subscribers` | `copy_open_tasks` or `copy_closed_tasks` + `copy_memberships` | — |
| `copy_task_comments`, `copy_task_attachments`, `copy_task_description`, `copy_tags`, `copy_due_date`, `copy_start_date`, `copy_repeat`, `copy_estimate` | `copy_open_tasks` or `copy_closed_tasks` | — |
| `copy_task_open_todos`, `copy_task_closed_todos`, `copy_task_open_subtasks`, `copy_task_closed_subtasks`, `copy_task_dependencies`, `copy_task_templates` | `copy_open_tasks` or `copy_closed_tasks` | — |
| `copy_views`, `copy_custom_fields`, `copy_notes`, `copy_dashboards`, `copy_surveys`, `copy_budgets` | — | Independent |
| `copy_deals` | — | Forced to `false` for internal project types |
| `copy_as_template` | — | Marks the result as a template (creates a linked `Template` record) |

### Save Project as Template (Productive web app defaults)

The "Save as Template" UI sends `copy_as_template: true`.

```json
{
  "data": {
    "type": "projects",
    "attributes": {
      "name": "Q4 marketing campaign template",
      "template_id": 123456,
      "project_type_id": 2,
      "project_manager_id": 42,
      "project_color_id": 5,
      "company_id": 999,
      "copy_as_template": true,
      "copy_memberships": true, // sharing
      "copy_boards": true, // folders
      "copy_views": true,
      "copy_custom_fields": true,
      "copy_dashboards": true,
      "copy_task_lists": true,
      "copy_open_tasks": true,
      "copy_closed_tasks": false,
      "copy_task_comments": true,
      "copy_task_subscribers": true,
      "copy_task_attachments": true,
      "copy_task_open_todos": true,
      "copy_task_closed_todos": false,
      "copy_task_open_subtasks": true,
      "copy_task_closed_subtasks": false,
      "copy_task_dependencies": true,
      "copy_task_description": true,
      "copy_assignees": true,
      "copy_tags": true,
      "copy_due_date": true,
      "copy_start_date": true,
      "copy_repeat": true,
      "copy_estimate": true,
      "copy_notes": true, // docs
      "copy_surveys": true, // forms
      "copy_task_templates": true
    }
  }
}
```

### Plain project copy

Duplicate an existing project as a new working project.

```json
{
  "data": {
    "type": "projects",
    "attributes": {
      "name": "Q4 marketing campaign — Acme",
      "template_id": 123456,
      "project_type_id": 2,
      "company_id": 999,
      "copy_boards": true,
      "copy_task_lists": true,
      "copy_open_tasks": true,
      "copy_task_comments": true,
      "copy_task_attachments": true,
      "copy_task_description": true,
      "copy_due_date": true,
      "copy_start_date": true,
      "copy_estimate": true,
      "copy_memberships": true,
      "copy_assignees": true,
      "copy_custom_fields": true,
      "copy_views": true,
      "copy_dashboards": true
    }
  }
}
```

### Minimal copy (structure only)

Only the required attributes. All `copy_*` flags default to `false` — you get a new empty project with the source's metadata.

```json
{
  "data": {
    "type": "projects",
    "attributes": {
      "name": "New empty internal project from source",
      "template_id": 123456,
      "project_type_id": 1
    }
  }
}
```

## Headers

- `X-Organization-Id` string, required

## Response `201`

Single project

## 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)
