Tasks API
CRUD operations for tasks, comments, and time tracking.
List Tasks
Get tasks for a board.
GET /api/tasks?boardId=<board-id>
Authorization: Bearer <token>Query Parameters
| Param | Type | Description |
|---|---|---|
| boardId | string | Filter by board (required) |
| groupId | string | Filter by group |
| status | string | Filter by status |
| assignee | string | Filter by assignee |
Response
{
"tasks": [
{
"id": "task-id",
"boardId": "board-id",
"groupId": "group-id",
"name": "Implement feature",
"status": "working",
"priority": "high",
"assignees": ["user-id"],
"dueDate": "2025-01-20T00:00:00Z",
"createdAt": "2025-01-10T10:00:00Z"
}
]
}Get Task
Get a single task with all details.
GET /api/tasks/:id
Authorization: Bearer <token>Response
{
"id": "task-id",
"boardId": "board-id",
"groupId": "group-id",
"name": "Implement feature",
"description": "Detailed description...",
"status": "working",
"priority": "high",
"assignees": ["user-id"],
"dueDate": "2025-01-20T00:00:00Z",
"columnValues": {
"custom-col-id": "custom value"
},
"comments": [
{
"id": "comment-id",
"userId": "user-id",
"content": "Great progress!",
"createdAt": "2025-01-12T14:30:00Z"
}
],
"subtasks": [
{
"id": "subtask-id",
"name": "Sub-item",
"completed": false
}
],
"timeEntries": [...],
"files": [...],
"createdAt": "2025-01-10T10:00:00Z",
"updatedAt": "2025-01-15T09:00:00Z"
}Create Task
Create a new task.
POST /api/tasks
Authorization: Bearer <token>Request Body
{
"boardId": "board-id",
"groupId": "group-id",
"name": "New task",
"description": "Task description",
"status": "pending",
"priority": "medium",
"assignees": ["user-id"],
"dueDate": "2025-01-25T00:00:00Z"
}Response
{
"success": true,
"task": {
"id": "new-task-id",
...
}
}Update Task
Update task properties.
PATCH /api/tasks/:id
Authorization: Bearer <token>Request Body
{
"name": "Updated name",
"status": "done",
"priority": "low",
"columnValues": {
"custom-col": "new value"
}
}Response
{
"success": true,
"task": { ... }
}Delete Task
Delete a task.
DELETE /api/tasks/:id
Authorization: Bearer <token>Response
{
"success": true,
"message": "Task deleted"
}Move Task
Move task to a different group.
PATCH /api/tasks/:id/move
Authorization: Bearer <token>Request Body
{
"groupId": "new-group-id"
}Add Comment
Add a comment to a task.
POST /api/tasks/:id/comments
Authorization: Bearer <token>Request Body
{
"content": "This looks great!",
"mentions": ["user-id"]
}Response
{
"success": true,
"comment": {
"id": "comment-id",
"userId": "current-user-id",
"content": "This looks great!",
"mentions": ["user-id"],
"createdAt": "2025-01-15T10:00:00Z"
}
}Add Subtask
Add a subtask.
POST /api/tasks/:id/subtasks
Authorization: Bearer <token>Request Body
{
"name": "Subtask name"
}Update Subtask
Toggle subtask completion.
PATCH /api/tasks/:taskId/subtasks/:subtaskId
Authorization: Bearer <token>Request Body
{
"completed": true
}Add Time Entry
Add a manual time entry.
POST /api/tasks/:id/time-entries
Authorization: Bearer <token>Request Body
{
"duration": 3600,
"description": "Bug investigation"
}