Skip to main content

Tasks API

Create and manage tasks.

List Tasks

GET /v1/tasks

Returns tasks with optional filters.

Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
spaceIdstringNoFilter by space
projectIdstringNoFilter by project
assigneeIdstringNoFilter by assignee
statusstringNoFilter by status
prioritystringNoFilter by priority

Example Request

curl "http://localhost:3000/api/tasks?workspaceId=ws_123&status=todo" \
-H "Authorization: Bearer $API_KEY"

Example Response

{
"data": [
{
"id": "task_abc123",
"title": "Update API documentation",
"description": "Add examples for new endpoints",
"status": "todo",
"priority": "high",
"assigneeId": "user_456",
"projectId": "proj_789",
"dueDate": "2025-02-01",
"createdAt": "2025-01-15T10:00:00Z",
"createdBy": "user_123"
}
]
}

Get Task

GET /v1/tasks/:taskId

Returns a single task.

Example Response

{
"data": {
"id": "task_abc123",
"title": "Update API documentation",
"description": "Add examples for all new endpoints including:\n- Pages API\n- Tasks API\n- Search API",
"status": "in_progress",
"priority": "high",
"assignee": {
"id": "user_456",
"name": "Jane Smith",
"avatarUrl": "https://..."
},
"project": {
"id": "proj_789",
"name": "Q1 Documentation"
},
"labels": ["documentation", "api"],
"dueDate": "2025-02-01",
"completedAt": null,
"createdAt": "2025-01-15T10:00:00Z",
"updatedAt": "2025-01-20T14:00:00Z",
"createdBy": "user_123"
}
}

Create Task

POST /v1/tasks

Creates a new task.

Body Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
titlestringYesTask title
descriptionstringNoTask description (markdown)
assigneeIdstringNoAssignee user ID
projectIdstringNoProject ID
spaceIdstringNoSpace ID
dueDatestringNoDue date (ISO 8601)
prioritystringNohigh, medium, low
labelsstring[]NoLabel names

Example Request

curl -X POST "http://localhost:3000/api/tasks" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "ws_123",
"title": "Review security documentation",
"description": "Review and update the security best practices guide",
"assigneeId": "user_456",
"priority": "high",
"dueDate": "2025-02-15"
}'

Update Task

PUT /v1/tasks/:taskId

Updates an existing task.

Body Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
titlestringNoNew title
descriptionstringNoNew description
statusstringNotodo, in_progress, done
assigneeIdstringNoNew assignee
prioritystringNoNew priority
dueDatestringNoNew due date
bucketstringNoTriage bucket

Example Request

curl -X PUT "http://localhost:3000/api/tasks/task_abc123" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "ws_123",
"status": "in_progress"
}'

Complete Task

POST /v1/tasks/:taskId/complete

Marks a task as complete.

Body Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID

Example Request

curl -X POST "http://localhost:3000/api/tasks/task_abc123/complete" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "workspaceId": "ws_123" }'

Assign Task

POST /v1/tasks/:taskId/assign

Assigns a task to a user.

Body Parameters

ParameterTypeRequiredDescription
workspaceIdstringYesWorkspace ID
assigneeIdstringYesUser ID to assign

Delete Task

DELETE /v1/tasks/:taskId

Deletes a task.

Parameters

ParameterTypeRequiredDescription
taskIdstringYesTask ID
workspaceIdqueryYesWorkspace ID

Triage Summary

GET /v1/tasks/triage-summary

Returns task counts by triage bucket.

Example Response

{
"data": {
"now": 5,
"next": 12,
"later": 28,
"none": 8
}
}