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"
}
]
| Field | Type | Description |
|---|---|---|
shared | boolean | Whether this project is shared with a family |
is_owner | boolean | Whether 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
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The project name |
deadline | string | No | Project deadline (ISO 8601 date) |
status | string | No | One of: Ongoing, Deadline, Fav, Completed, Moved the Needle, Archived |
bucket_ids | string[] | No | Associated 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
}