Skip to main content

Update Task

PUT 

/api/tasks/:task_id

Update an existing task.

Only the fields you send change.

Comments. A task's comments live in recent_comments, and this is the call that writes them:

  • Add a comment: send recent_comments with just the new comment, {"id": "<a new UUID>", "content": "..."}. Entries are merged by id, so the comments already on the task are kept and the new one is added after them. Give every new comment its own id: replying to, resolving, assigning, editing and deleting a comment all find it by its id. The author is set from the login or API key that made the call; author fields in the body are ignored.
  • Reply to a comment: add parent_comment_id with the id of the comment you are answering.
  • Private comment: set is_private to true and list the teammates it is shared with in visible_to, as [{"user_id": "..."}]. Only the comment's author can change these two fields.
  • Edit a comment: send the whole comment as GET /api/tasks/{task_id} (or, for an older one, GET /api/tasks/{task_id}/activities) returned it, with the new content. The copy you send replaces the stored one, so a field you leave out (parent_comment_id, created_at, reactions) is lost.
  • Delete a comment: put its id in removed_comment_ids and send recent_comments in the same call (an empty list will do). removed_comment_ids on its own deletes nothing, and a comment's replies are not deleted with it: list their ids too.

GET /api/tasks/{task_id} returns the 20 newest entries and GET /api/tasks/{task_id}/activities pages through older ones. PUT /api/tasks/{task_id}/comments/{comment_id}/resolved resolves or reopens a comment and PUT /api/tasks/{task_id}/comments/{comment_id}/assignee assigns it to a team member.

Request​

Responses​

Successful Response