Skip to main content

API Reference

Projects

Projects are the top-level containers in floow.design. Each project holds a collection of frames (screens) on an infinite canvas.

GET/api/v1/projects🔑 Auth required

List all projects owned by or shared with the authenticated user. Results are ordered by last updated.

Query Parameters

NameTypeDescription
teamIdstringFilter to a specific team workspace. Omit to return all personal + team projects.
Response
{  "projects": [    {      "id": "proj_xyz789",      "name": "Banking App",      "screens": 5,      "createdAt": "2026-04-01T09:00:00Z",      "updatedAt": "2026-04-12T14:30:00Z",      "framePreviews": [        { "id": "frm_001", "label": "Login" },        { "id": "frm_002", "label": "Dashboard" },        { "id": "frm_003", "label": "Transactions" }      ]    }  ]}
POST/api/v1/projects🔑 Auth required

Create a new empty project.

Body Parameters

NameTypeDescription
namestringDisplay name for the project. Defaults to "Untitled Project".
teamIdstringAssign the project to a team workspace.
Request body
{  "name": "E-commerce Checkout Flow"}
Response
{  "project": {    "id": "proj_new123",    "name": "E-commerce Checkout Flow",    "ownerId": "user_abc",    "createdAt": "2026-04-12T15:00:00Z",    "updatedAt": "2026-04-12T15:00:00Z"  }}
DELETE/api/v1/projects🔑 Auth required

Permanently delete a project and all its frames.

  • This action is irreversible. All frames inside the project are deleted.

Body Parameters

NameTypeDescription
idstringID of the project to delete.
Request body
{  "id": "proj_xyz789"}
Response
{  "ok": true}
POST/api/v1/projects/duplicate🔑 Auth required

Create a full copy of a project, including all its frames.

Body Parameters

NameTypeDescription
idstringID of the source project to duplicate.
Request body
{  "id": "proj_xyz789"}
Response
{  "project": {    "id": "proj_copy456",    "name": "Banking App (copy)",    "createdAt": "2026-04-12T16:00:00Z",    "updatedAt": "2026-04-12T16:00:00Z"  }}
POST/api/v1/projects/trash🔑 Auth required

Move a project to trash (soft delete) or restore / permanently delete a trashed project.

Body Parameters

NameTypeDescription
idstringProject ID.
action"trash" | "restore" | "delete""trash" soft-deletes, "restore" recovers, "delete" permanently removes.
Request body
{  "id": "proj_xyz789",  "action": "trash"}
Response
{  "ok": true}