Projects

Projects group related tasks together and can be shared with family members. Each project has a status that tracks its lifecycle from active work through completion or archival.

GET /api/v1/projects

List all projects owned by or shared with the authenticated user.

Response

[
  {
    "id": "clx4d5e6f...",
    "name": "Q1 Planning",
    "deadline": "2026-04-01",
    "status": "Ongoing",
    "bucket_ids": ["clx7g8h9i..."],
    "shared": false,
    "is_owner": true,
    "createdAt": "2026-01-15T10:00:00.000Z",
    "updatedAt": "2026-03-20T10:00:00.000Z"
  }
]
FieldTypeDescription
sharedbooleanWhether this project is shared with a family
is_ownerbooleanWhether the authenticated user owns this project

POST /api/v1/projects

Create a new project.

Request Body

{
  "name": "Q1 Planning",
  "deadline": "2026-04-01",
  "status": "Deadline",
  "bucket_ids": ["clx7g8h9i..."]
}

Fields

FieldTypeRequiredDescription
namestringYesThe project name
deadlinestringNoProject deadline (ISO 8601 date)
statusstringNoOne of: Ongoing, Deadline, Fav, Completed, Moved the Needle, Archived
bucket_idsstring[]NoAssociated life bucket IDs

Response

Returns the created project object.

PATCH /api/v1/projects/:id

Update an existing project. Only include the fields you want to change.

Request Body

{
  "status": "Completed"
}

All fields from the create endpoint are accepted. Only provided fields will be updated.

Response

Returns the updated project object.

DELETE /api/v1/projects/:id

Permanently delete a project. This does not delete tasks associated with the project.

Response

{
  "success": true
}

POST /api/v1/projects/:id/share

Share a project with your family. All family members will be able to see the project and its tasks.

Response

{
  "success": true
}

DELETE /api/v1/projects/:id/share

Remove family sharing from a project. Family members will no longer see the project or its tasks.

Response

{
  "success": true
}