Update task
Partially updates a task. Only provided fields change. Reparenting isn’t possible here — use Reorder tasks.
On success the API returns 200 OK with the updated task body.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
taskId | string (uuid) | Yes | The task to update. |
Request body
All fields optional — send only what changes.
| Name | Type | Description |
|---|---|---|
name | string | Task name. |
description | string | Free-text description. |
startDate | string (ISO 8601) | Task start date. |
endDate | string (ISO 8601) | Task end date. |
status | string | A custom status key or legacy name. Unknown values are coerced, not rejected — a typo silently resolves to the project’s default-for-new status, and a status-only update also rewrites progress reciprocally. Validate client-side if a typo would be costly. |
priority | string | High / Medium / Low. |
progress | integer | 0–100. |
estimation | number | Hours. |
color | string | #RRGGBB. |
Behavior worth knowing:
- Status ↔ progress reciprocal: a status-only update derives progress (Done→100, not-started→0, in-progress→25); a progress-only update derives the status category. Send both to control them explicitly.
- Group tasks roll up. A task with children computes progress/status/dates from them; setting
progressorstatusdirectly on one is400 parent_task_rollup— update the children instead.