---
title: "PM · Tasks · Update task fields; supports inline assignee/tag diffs and status moves"
method: PATCH
path: "/api/v1/pm/tasks/{task_id}"
tags: ["tasks"]
---

# PM · Tasks · Update task fields; supports inline assignee/tag diffs and status moves

`PATCH /api/v1/pm/tasks/{task_id}`

## Request

- Base URL: `https://api.simplified.com`
- URL: `https://api.simplified.com/api/v1/pm/tasks/{task_id}`
- Auth: API key in header `Authorization`

Partial update for a task. All fields optional. To move the task to a
different status (column), pass `status` with the destination status UUID.
Composite fields `assignees_add`/`assignees_remove` and `tags_add`/`tags_remove`
are handled by the middleware — they trigger sub-resource calls automatically.
`description` is converted to a Quill Delta (`rich_description`) by the toolkit.

## Path parameters

- `task_id` string, required

## Headers

- `Organization` string
- `Space` string

## Request body

- TaskUpdateRequest: Partial task update (PATCH). All fields optional.
  - `title` string
  - `description` string: Plain text task description. This is the field agents and CLI users should set. The toolkit converts it to a Quill Delta and writes `rich_description` automatically.
  - `rich_description` object: INTERNAL — Quill Delta representation. Set automatically by the toolkit when you pass `description`. Do not pass directly unless you have a pre-built Delta and know what you're doing.
  - `status` string, uuid: Move task to a new status (on the same or different board).
  - `start_date` string, date-time, nullable
  - `due_date` string, date-time, nullable
  - `priority` integer
  - `complete` boolean: Marking a task complete is rejected if the task has incomplete blockers or a running timer.
  - `estimated_hours` number, double, nullable
  - `order` integer: Pass to reposition the task inside its status.
  - `extra` object
  - `custom_fields` object
  - `assignees_add` integer[]: Integer user IDs to add as assignees (get from listWorkspaceMembers). Toolkit calls POST /tasks/{id}/assignees/ with {"add": [...]} after the PATCH.
  - `assignees_remove` integer[]: Integer user IDs to remove from assignees (get from listWorkspaceMembers). Toolkit calls POST /tasks/{id}/assignees/ with {"remove": [...]} after the PATCH.
  - `tags_add` string[]: Composite field — tag names to add. Toolkit calls POST /tasks/{id}/tags/ with {"add": [...]} after the PATCH.
  - `tags_remove` string[]: Composite field — tag names to remove. Toolkit calls POST /tasks/{id}/tags/ with {"remove": [...]} after the PATCH.

## Response `200`

Task updated.

- unknown

---

[API](https://skmtc.dev/simplified/apis/project-manager.md) - [All operations](https://skmtc.dev/simplified/apis/project-manager/llms.txt) - [OpenAPI document](https://skmtc.dev/simplified/apis/project-manager/revisions/9ef06e133a13?raw)
