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 requiredList all projects owned by or shared with the authenticated user. Results are ordered by last updated.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
teamId | string | No | Filter 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 requiredCreate a new empty project.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
name | string | No | Display name for the project. Defaults to "Untitled Project". |
teamId | string | No | Assign 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 requiredPermanently delete a project and all its frames.
- This action is irreversible. All frames inside the project are deleted.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | ID of the project to delete. |
Request body
{ "id": "proj_xyz789"}Response
{ "ok": true}POST
/api/v1/projects/duplicate🔑 Auth requiredCreate a full copy of a project, including all its frames.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | ID 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 requiredMove a project to trash (soft delete) or restore / permanently delete a trashed project.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Project ID. |
action | "trash" | "restore" | "delete" | Yes | "trash" soft-deletes, "restore" recovers, "delete" permanently removes. |
Request body
{ "id": "proj_xyz789", "action": "trash"}Response
{ "ok": true}