create_project
Create a new project and return its server-minted id. The id is an opaque v4 UUID assigned automatically — you never choose or name it; refer to the project by its name. By default this mints a fresh BLANK project (empty canvas, no layers) — creation is independent from cloning. Pass fromProjectId ONLY when you want to clone: the new project then copies that project's JSON, uploaded assets, and uploaded clips, and — like duplicate_project — FOLLOWS THE SOURCE'S workspace by default (cloning a team project stays in that team; a blank project is personal). Pass workspaceId (from list_workspaces) to place it in a specific workspace instead — requires an edit-capable role there — or null to force it into the caller's personal space. If the clone source lives in a workspace you can only view, the call FAILS rather than silently making a personal copy — pass workspaceId:null for a personal copy. The user's editor session won't auto-refresh — they'll need to reload to see the new project in the picker.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Recommended human-readable label, shown verbatim in the editor's project picker (the only user-facing handle for the project). Omit and the picker falls back to the opaque id. | |
| workspaceId | No | Where to place the project. Omit to FOLLOW THE SOURCE (a clone inherits its source's workspace; a blank project is personal). A workspace id (from list_workspaces) places it there — requires an edit-capable role. null forces the caller's personal space. | |
| fromProjectId | No | Optional id of an existing project to CLONE (copies its JSON + uploaded assets + clips). Omit to create a fresh blank project. |