Projects
A project is one ML use case under a workspace (not the same as a workspace). It owns images/samples, classes, annotations, dataset versions, pipelines, training runs, and models.
Hierarchy: Organization → Workspace → Project → datasets / annotation / pipelines / training / models.
Create a project
UI: Dashboard → New project, /projects/new, or a workspace page → New project here.
Fields:
Field |
Description |
|---|---|
Workspace |
Parent workspace (defaults to Personal → Default workspace) |
Name |
Required display name |
Description |
Optional notes |
Type |
Object detection (recommended), instance segmentation, etc. |
Location |
Optional absolute path (or |
API:
POST /api/projects
Content-Type: application/json
{
"name": "Traffic cams",
"description": "",
"project_type": "object_detection",
"location": "",
"workspace_id": null
}
Open and update
Dashboard lists all projects with image / annotated / class counts.
Project detail page: images grid, classes, generate/train/export panels.
Rename or change location via
PATCH /api/projects/{id}.
Warning
Changing location does not automatically move existing files. Prefer setting location at create/import time.
Delete
Single project: delete from the UI or
DELETE /api/projects/{id}.Multi-select: select mode on the dashboard → bulk delete (
POST /api/projects/bulk-delete).
Deleting a project removes its DB rows. Managed image files under the project images/ directory are cleaned up when applicable. In-place imports (source folder as location) keep files on disk.
Classes
Classes live under a project.
UI: Project page → class list → add name/color.
API:
POST /api/projects/{project_id}/classes
{"name": "car", "color": "#22c55e"}
GET /api/projects/{project_id}/classes
DELETE /api/classes/{class_id}
Tip
Name classes to match your intended YOLO model vocabulary if you plan to use Label Assist (e.g. COCO names like person, car). Unmatched detections are skipped.
Dashboard stats
GET /api/stats
Returns project count, total images, annotated images, and annotation count.