Skip to content

tasks

12 endpoints at a glance
MethodPathSummary
GET/tasksList Tasks
POST/tasksCreate Task
DELETE/tasks/{task_id}Soft Delete Task
GET/tasks/{task_id}Get Task
PATCH/tasks/{task_id}Update Task
POST/tasks/{task_id}/completeComplete Task
DELETE/tasks/{task_id}/export-to-caldavUnexport
POST/tasks/{task_id}/export-to-caldavExport
POST/tasks/{task_id}/moveMove Task
POST/tasks/{task_id}/restoreRestore Task
POST/tasks/bulkBulk
POST/tasks/reorderReorder

tasks


List Tasks

GET
/tasks

Cross-project list with filters.

Pass status and tag_id multiple times to combine values:
?status=backlog&status=in_progress.

include_descendants (with project_id) rolls up the project and
its whole visible sub-tree — used by the parent project's Tasks tab.
The cap is 500 here (vs the usual 200) so a wide tree isn't silently
truncated; the SPA surfaces a hint when has_more is still true.

Parameters

Header Parameters

authorization

Query Parameters

project_id
include_descendants
Type
boolean
Default
false
parent_task_id
status
tag_id
due_before
due_after
q
include_deleted
Type
boolean
Default
false
page
Type
integer
Default
1
limit
Type
integer
Default
50

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Create Task

POST
/tasks

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"title": "string",
  
"description": "string",
  
"project_id": "string",
  
"parent_task_id": "string",
  
"status": "backlog",
  
"priority": "normal",
  
"due_date": "string",
  
"due_has_time": false,
  
"scheduled_for": "string",
  
"scheduled_has_time": false,
  
"assignee_id": "string",
  
"tag_ids": [
  
  
"string"
  
],
  
"recurrence_rule": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Get Task

GET
/tasks/{task_id}

Parameters

Header Parameters

authorization

Path Parameters

task_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Soft Delete Task

DELETE
/tasks/{task_id}

Soft delete (recoverable; decision 4). Cascades comments + links.

Parameters

Header Parameters

authorization

Path Parameters

task_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Update Task

PATCH
/tasks/{task_id}

Parameters

Header Parameters

authorization

Path Parameters

task_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"title": "string",
  
"description": "string",
  
"project_id": "string",
  
"parent_task_id": "string",
  
"status": "string",
  
"priority": "string",
  
"due_date": "string",
  
"due_has_time": true,
  
"scheduled_for": "string",
  
"scheduled_has_time": true,
  
"assignee_id": "string",
  
"tag_ids": [
  
  
"string"
  
],
  
"position": 0,
  
"custom_fields": {
  
  
"additionalProperties": "string"
  
},
  
"recurrence_rule": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Move Task

POST
/tasks/{task_id}/move

Move a task (and any descendants) to a different project.

Parameters

Header Parameters

authorization

Path Parameters

task_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"project_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Complete Task

POST
/tasks/{task_id}/complete

Parameters

Header Parameters

authorization

Path Parameters

task_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Restore Task

POST
/tasks/{task_id}/restore

Parameters

Header Parameters

authorization

Path Parameters

task_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Reorder

POST
/tasks/reorder

Bulk-update (status, position) for many tasks.

Used by the kanban board on drag-drop and by list-view manual
reordering. The client computes the full target ordering for each
affected column and ships it; the server doesn't recompute.

Validation: every distinct (task, target-status) pair is checked
against the target task's project's effective status list. We fetch
each task's project once and reuse.

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"items": [
  
  
{
  
  
  
"task_id": "string",
  
  
  
"status": "string",
  
  
  
"position": 0
  
  
}
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Bulk

POST
/tasks/bulk

Run one action against a list of task ids in one round-trip.

Subtree semantics are NOT applied here — bulk move just moves the
listed ids. For "move this task and its descendants together", use
the per-task /tasks/{id}/move endpoint.

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"task_ids": [
  
  
"string"
  
],
  
"action": "string",
  
"value": "string",
  
"tag_id": "string",
  
"project_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Export

POST
/tasks/{task_id}/export-to-caldav

Push the task to the user's CalDAV calendar as a VTODO.

Idempotent: subsequent calls update the existing remote resource
using the stored href + etag. Returns the updated task.

Parameters

Header Parameters

authorization

Path Parameters

task_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"calendar_id": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Unexport

DELETE
/tasks/{task_id}/export-to-caldav

Remove the remote VTODO and clear the export markers locally.

Parameters

Header Parameters

authorization

Path Parameters

task_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Kancil — one workspace for contacts, work and money.