duplicate_project
Duplicate an existing project into a brand-new one — a full copy of its layers, animations, styles, uploaded assets, and clips. Pass the SOURCE project's projectId; the copy gets a fresh id automatically (ids are opaque — never shown to the user). Defaults the copy's name to " copy" unless you pass name. WORKSPACE: the copy FOLLOWS THE SOURCE by default — a project in a workspace is copied into that SAME workspace, and a personal project stays personal. Pass workspaceId to override: a workspace id (from list_workspaces) to place the copy in a specific workspace (you need an edit-capable role there), or null to force the copy into your personal space. If the source lives in a workspace you can only VIEW, the call FAILS rather than silently making a personal copy — get an editor role there, or pass workspaceId:null. (Duplicating a project shared with you from a workspace you're NOT a member of lands in personal, since you can't be placed in that workspace.) The returned workspaceId tells you where it went. The user's editor won't auto-refresh — they reload to see the copy in the picker.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional name for the copy. Shown verbatim in the picker; defaults to "<source name> copy". | |
| projectId | Yes | Id of the existing project to duplicate (the source). | |
| workspaceId | No | Optional override for where the copy lives. Omit to FOLLOW THE SOURCE (a workspace project stays in its workspace; a personal one stays personal). A workspace id (from list_workspaces) places the copy there — you need an edit-capable role. null forces the copy into your personal space. |