Projects
Upsert Project
Create or update a project with a specific ID (upsert).
Returns 201 for creation, 200 for update. Returns 404 if owned by another user (avoids leaking existence). A name collision fails loud as 409 on both the create and update paths (unlike POST, which auto-renames).
workspace_id is out of scope: FolderCreate cannot express it, so a synced project inherits NULL exactly like one created via POST. Workspace assignment is not part of the upsert contract.
put/api/v1/projects/{project_id}
Path parameters
project_idstring uuid required
Request body
Response
Successful Response