---
title: Projects | FLORA API
description: Create, list, retrieve, and attach assets to FLORA projects.
---

Projects group generated work and assets inside a workspace. Use projects when you want API-created assets and runs to appear together in FLORA.

## List projects

Terminal window

```
curl "https://app.flora.ai/api/v1/projects?workspace_id=ws_XXXX&limit=10" \
  -H "Authorization: Bearer sk_live_XXXX"
```

Response:

```
{
  "projects": [
    {
      "project_id": "proj_...",
      "name": "Campaign concepts"
    }
  ]
}
```

## Create a project

Terminal window

```
curl -X POST https://app.flora.ai/api/v1/projects \
  -H "Authorization: Bearer sk_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "workspace_id": "ws_XXXX",
    "name": "Campaign concepts"
  }'
```

Some keys may not have permission to create projects. In that case, the API returns `403 forbidden`.

## Retrieve a project

Terminal window

```
curl https://app.flora.ai/api/v1/projects/proj_XXXX \
  -H "Authorization: Bearer sk_live_XXXX"
```

## List project nodes

Terminal window

```
curl https://app.flora.ai/api/v1/projects/proj_XXXX/nodes \
  -H "Authorization: Bearer sk_live_XXXX"
```

Project nodes are the items shown inside a FLORA project canvas or workspace view.

## Attach an asset to a project

After creating or uploading an asset, attach it to a project:

Terminal window

```
curl -X POST https://app.flora.ai/api/v1/projects/proj_XXXX/assets/asset_XXXX/attach \
  -H "Authorization: Bearer sk_live_XXXX"
```

## Common endpoints

| Method | Path                                                     | Description                  |
| ------ | -------------------------------------------------------- | ---------------------------- |
| GET    | `/api/v1/projects?workspace_id={workspace_id}&limit=10`  | List projects                |
| POST   | `/api/v1/projects`                                       | Create a project             |
| GET    | `/api/v1/projects/{project_id}`                          | Retrieve a project           |
| GET    | `/api/v1/projects/{project_id}/nodes`                    | List project nodes           |
| POST   | `/api/v1/projects/{project_id}/assets/{asset_id}/attach` | Attach an asset to a project |

## Notes

- `workspace_id` is required when listing or creating projects.
- Permission-sensitive operations can return `403 forbidden`.
- Use project IDs from the list or create response in run creation payloads when you want generations associated with a project.
