---
title: "Update task — GanttFather API"
description: "Partial update — only the fields you send change."
canonical: "https://ganttfather.com/docs/api/update-task/"
locale: "en"
category: "product"
---

# Update task — GanttFather API

API reference [AI assistants (MCP)](https://ganttfather.com/docs/ai-agent/)

## Getting started

- [Introduction](https://ganttfather.com/docs/api/introduction/)
- [Authentication](https://ganttfather.com/docs/api/authentication/)
- [Pagination](https://ganttfather.com/docs/api/pagination/)
- [Rate limits & quotas](https://ganttfather.com/docs/api/rate-limits/)
- [Errors](https://ganttfather.com/docs/api/errors/)

## Projects

- [GET List projects](https://ganttfather.com/docs/api/list-projects/)
- [GET Get project](https://ganttfather.com/docs/api/get-project/)

## Tasks

- [GET List tasks](https://ganttfather.com/docs/api/list-tasks/)
- [GET Get task](https://ganttfather.com/docs/api/get-task/)
- [POST Create task](https://ganttfather.com/docs/api/create-task/)
- [PATCH Update task](https://ganttfather.com/docs/api/update-task/)
- [DELETE Delete task](https://ganttfather.com/docs/api/delete-task/)
- [POST Reorder tasks](https://ganttfather.com/docs/api/reorder-tasks/)
- [PUT Set assignees](https://ganttfather.com/docs/api/set-assignees/)

## Dependencies

- [GET List dependencies](https://ganttfather.com/docs/api/list-dependencies/)
- [PUT Set dependencies](https://ganttfather.com/docs/api/set-dependencies/)
- [POST Add dependency](https://ganttfather.com/docs/api/add-dependency/)
- [DELETE Remove dependency](https://ganttfather.com/docs/api/remove-dependency/)

## Resources

- [GET List resources](https://ganttfather.com/docs/api/list-resources/)
- [POST Create resource](https://ganttfather.com/docs/api/create-resource/)
- [PATCH Update resource](https://ganttfather.com/docs/api/update-resource/)
- [DELETE Delete resource](https://ganttfather.com/docs/api/delete-resource/)

## Members

- [GET List members](https://ganttfather.com/docs/api/list-members/)

 Tasks / **Update task**

# Update task

 PATCH

 Updated Jul 4, 2026

 Partially updates a task. Only provided fields change. Reparenting isn’t possible here — use [Reorder tasks](https://ganttfather.com/docs/api/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 progress or status directly on one is 400 parent_task_rollup — update the children instead.

 curl -X PATCH https://api.ganttfather.com/v1/tasks/{taskId} \
 -H "Authorization: Bearer glt_YOUR_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{ "status": "Done" }'

 Response 200 OK

 {
 "id": "0198f1a2-6b3d-7c9e-9a1f-2d4e5f6a7b8c",
 "name": "Draft launch checklist",
 "description": null,
 "startDate": "2026-07-07T00:00:00Z",
 "endDate": "2026-07-10T00:00:00Z",
 "estimation": null,
 "progress": 100,
 "status": "Done",
 "statusKey": null,
 "priority": "Medium",
 "orderIndex": 1000,
 "indentation": 0,
 "parentId": null,
 "assigneeIds": [],
 "predecessors": []
}

 Rather not write REST?

## Connect an AI assistant instead.

 [Explore MCP setup →](https://ganttfather.com/docs/ai-agent/)
