API Reference
Tasks

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

ParamTypeDescription
boardIdstringFilter by board (required)
groupIdstringFilter by group
statusstringFilter by status
assigneestringFilter 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"
}