Update a task
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.
Request
Section titled “Request”Path parameters
Section titled “Path parameters”| Name | Type | Required | Description |
|---|---|---|---|
taskId | string | yes | Numeric ID of the task. |
Content-Type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
title | string | no | New title. Must contain at least one non-whitespace character. |
description | string | null | no | CommonMark 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. |
priority | string | null | no | One of low, medium, high, urgent, or null to clear. |
dueDate | string | null | no | ISO 8601 date string (e.g. 2026-05-12), or null to clear. |
taskStatusId | number | no | Numeric status ID to move the task to. Must belong to the same team. |
assigneeIds | array of string | no | When provided, replaces the current assignee set with these user IDs. |
Example request
Section titled “Example request”Response
Section titled “Response”200 OK — the updated task:
| Field | Type | Description |
|---|---|---|
id | number | Numeric ID of the task. |
number | number | Auto-incrementing task number within the team. |
title | string | Task title. |
priority | string | null | Priority after the update. |
dueDate | string | null | Due date after the update. |
taskStatusId | number | Status ID after the update. |
updatedAt | string | ISO 8601 timestamp of the update. |
Example response
Section titled “Example response”Errors
Section titled “Errors”| Status | Body | When |
|---|---|---|
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. |