Copies a project
Changed onCreates 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_folders | — | Required by copy_task_lists |
| copy_task_lists | copy_folders | 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_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 | — | Copies the source project's views, which are its tabs (Tasks, Docs, Budgets…), keeping the tab order. Without it, the new project shows only built-in tabs such as Time |
| copy_notes | — | Copies the source project's docs (pages) that you can see |
| copy_surveys | — | Copies the source project's forms that you can see, with their fields, sharing and automations, but without responses. Fields linked to custom fields are skipped unless copy_custom_fields is also enabled |
| copy_custom_fields, copy_dashboards, copy_budgets | — | Independent |
| copy_automations | — | Copies the source project's automations (multi-project automations are skipped) |
| 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.
{
"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_folders": true,
"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_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.
{
"data": {
"type": "projects",
"attributes": {
"name": "Q4 marketing campaign — Acme",
"template_id": 123456,
"project_type_id": 2,
"company_id": 999,
"copy_folders": true,
"copy_task_lists": true,
"copy_open_tasks": true,
"copy_task_comments": true,
"copy_task_attachments": true,
"copy_task_description": true,
"copy_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.
{
"data": {
"type": "projects",
"attributes": {
"name": "New empty internal project from source",
"template_id": 123456,
"project_type_id": 1
}
}
}
Request
- Base URLhttps://developer.productive.io (the document declares no server; this is the origin it was published from)
- URLhttps://developer.productive.io/api/v2/projects/copy
- Authnone declared
Request body
Example request
{
"data": {
"type": "projects",
"attributes": {
"name": "Q4 marketing campaign template",
"template_id": 123456,
"project_type_id": 1,
"project_manager_id": 42,
"project_color_id": 5,
"company_id": 999,
"copy_as_template": true,
"copy_memberships": true,
"copy_folders": true,
"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_date": true,
"copy_repeat": true,
"copy_estimate": true,
"copy_notes": true,
"copy_surveys": true,
"copy_task_templates": true
}
}
}Response
Single project
Example response
{
"data": {
"id": "6899",
"type": "projects",
"attributes": {
"name": "Website Redesign",
"number": "12",
"project_number": "12",
"project_color_id": 1,
"preferences": {},
"last_activity_at": "2026-03-15T10:30:00.000+00:00",
"archived_at": null,
"created_at": "2026-01-01T09:00:00.000+00:00",
"template": false,
"description": null,
"custom_fields": null,
"tag_colors": {}
},
"relationships": {
"company": {
"data": {
"type": "companies",
"id": "65111"
}
},
"project_manager": {
"data": {
"type": "people",
"id": "12"
}
},
"workflow": {
"data": {
"type": "workflows",
"id": "75"
}
}
}
},
"included": []
}Changes
- warning
added the new
netsuite_project_ambiguousenum value to the//response property for the response status
- warning
- warning
added the new
bad_decimal_formatenum value to the//response property for the response status - warning
added the new
non_finite_numberenum value to the//response property for the response status - warning
added the new
null_bytes_in_paramsenum value to the//response property for the response status - info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the non-success response with the status
- info
added the non-success response with the status
- warning