Skip to content

Update a task

PATCH /v1/tasks/{taskId}

Updates attributes of an existing task. Only fields you provide are changed; pass null to clear a nullable field. Provide assigneeIds to replace the current assignee set in one go (omit it to leave assignees untouched).

The API key’s owner must have access to the task — they created it, are assigned to it, or belong to one of the lists the task is attached to. Requests for tasks they don’t have access to return 403 Forbidden.

Connected web clients in the team receive a realtime event so the change appears immediately in their UI.

NameTypeRequiredDescription
taskIdstringyesNumeric ID of the task.

Content-Type: application/json

FieldTypeRequiredDescription
titlestringnoNew title. Must contain at least one non-whitespace character.
descriptionstring | nullnoCommonMark markdown body. Replaces the existing description; pass null to clear. If a teammate has the task open in the web app, their next save will overwrite this update.
prioritystring | nullnoOne of low, medium, high, urgent, or null to clear.
dueDatestring | nullnoISO 8601 date string (e.g. 2026-05-12), or null to clear.
taskStatusIdnumbernoNumeric status ID to move the task to. Must belong to the same team.
assigneeIdsarray of stringnoWhen provided, replaces the current assignee set with these user IDs.
{
  "priority": "urgent",
  "taskStatusId": 3,
  "assigneeIds": ["u_abc123", "u_def456"]
}

200 OK — the updated task:

FieldTypeDescription
idnumberNumeric ID of the task.
numbernumberAuto-incrementing task number within the team.
titlestringTask title.
prioritystring | nullPriority after the update.
dueDatestring | nullDue date after the update.
taskStatusIdnumberStatus ID after the update.
updatedAtstringISO 8601 timestamp of the update.
{
  "id": 421,
  "number": 87,
  "title": "Wire up onboarding email",
  "priority": "urgent",
  "dueDate": "2026-05-12",
  "taskStatusId": 3,
  "updatedAt": "2026-05-08T11:02:08.000Z"
}
StatusBodyWhen
400{ "error": "..." }taskStatusId doesn’t belong to your team, or title is empty.
403{ "error": "You do not have access to this task." }The API key’s owner can’t see this task in the web app either.
404{ "error": "Task <id> not found." }No task with that ID exists in the bound team.