---
title: "Update a task"
method: PUT
path: "/v1/tasks/{taskId}"
tags: ["Personal Tasks"]
---

# Update a task

`PUT /v1/tasks/{taskId}`

Update a task by its ID

## Path parameters

- `taskId` integer, required

## Headers

- `X-Org-Id` integer, required

## Request body

- TaskUpdateRequest — DTO for updating an existing task. This object is used to transfer data from the client to the server when updating a task.
  - `taskTitle` string — Title of the task. Optional for updates.
  - `description` string — Description of the task. Optional for updates.
  - `owners` integer[] — List of owner IDs assigned to the task. Optional for updates.
  - `startDate` string, date-time — Start date of the task. Optional for updates.
  - `dueDate` string, date-time — Due date of the task. Optional for updates.
  - `noOfDays` integer — Duration in working days. When sent together with startDate or dueDate, the missing date is recomputed honouring the organisation's operational hours.
  - `completion` integer — Completion percentage of the task. Must be between 0 and 100. Optional for updates.
  - `status` string — Status of the task. Optional for updates.
  - `priority` string — Priority of the task. Optional for updates.
  - `tags` string[] — List of tags associated with the task. Optional for updates.

## Response `200`

Task updated successfully

## Changes

- **2026-08-08** `237f5bbd4029` — 1 breaking, 1 info
  - removed the media type `application/hal+json` for the response with the status `200`
  - added the media type `application/vnd.hal+json` for the response with the status `200`

[Change history](https://skmtc.dev/astravue/apis/astravue-api/changes/v1/tasks/:taskId/put.md)

---

[API](https://skmtc.dev/astravue/apis/astravue-api.md) · [All operations](https://skmtc.dev/astravue/apis/astravue-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/astravue/astravue-api/revisions/290e97dda2ec/schema)
