Projects

Copies a project

Changed on

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)PrerequisiteNotes
copy_folders—Required by copy_task_lists
copy_task_listscopy_foldersRequired by copy_open_tasks, copy_closed_tasks
copy_open_tasks, copy_closed_taskscopy_task_listsRequired by per-task flags below
copy_memberships—Required by copy_assignees, copy_task_subscribers
copy_assignees, copy_task_subscriberscopy_open_tasks or copy_closed_tasks + copy_memberships—
copy_task_comments, copy_task_attachments, copy_task_description, copy_tags, copy_date, copy_repeat, copy_estimatecopy_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_templatescopy_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
    }
  }
}
post/api/v2/projects/copy

Request

  • Base URL
    https://developer.productive.io (the document declares no server; this is the origin it was published from)
  • URL
    https://developer.productive.io/api/v2/projects/copy
  • Auth
    none 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_ambiguous enum value to the // response property for the response status

    • warning

      added the new bad_decimal_format enum value to the // response property for the response status

    • warning

      added the new non_finite_number enum value to the // response property for the response status

    • warning

      added the new null_bytes_in_params enum 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