---
title: "Update a task"
method: PATCH
path: "/tasks/{id}"
tags: ["Tasks"]
---

# Update a task

`PATCH /tasks/{id}`

## Request

- Base URL: `https://www.ruddr.io/api/workspace`
- URL: `https://www.ruddr.io/api/workspace/tasks/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string: The name of the task (max 255 chars).
  - `notes` string, nullable: Any notes associated with the task (max 5000 chars).
  - `statusId` 'not_started' | 'in_progress' | 'completed': The status of the task, defaults to `not_started` if not set.
  - `start` string, date, nullable: The start date (`YYYY-MM-DD`) of the task, must come on or before `end` date if set.
  - `end` string, date, nullable: The end date (`YYYY-MM-DD`) of the task, must come on or after the `start` date if set.
  - `isBillable` boolean: Whether the task is billable, defaults to `true` if not set. Will be overridden to `false` if the project is not billable.
  - `lockTime` boolean: When enabled, prevents new time entries from being created with this task.
  - `capHours` boolean: When enabled, prevents time entries that would exceed the budgeted hours for this task.
  - `capAssignedHours` boolean: When enabled, prevents time entries that would exceed the budgeted hours assigned to the role or member for this task.
  - `code` string, nullable: The task code (max 255 chars).
  - `forAssignedOnly` boolean: When enabled, only assigned members and roles can track time to this task.
  - `requireNotes` boolean: Requires notes on time entries for this task.
  - `budgetedHours` number, nullable: The budgeted hours for the task. Only used if there are no roles or project members set.
  - `budgetedServicesRevenue` number, nullable: The budgeted services revenue for the task. Only used if there are no roles or project members set.
  - `roles` object[]: The list of project roles to assign to this task. IDs must be unique.
    - `id` string, required: The ID (`uuid`) of the project role.
    - `hours` number, nullable: The budgeted hours allocated to this role for the task.
  - `projectMembers` object[]: The list of project members to assign to this task. IDs must be unique.
    - `id` string, required: The ID (`uuid`) of the project member.
    - `hours` number, nullable: The budgeted hours allocated to this member for the task. Only used if not using roles.
  - `tagIds` string[]: A list of task tag IDs (`uuid`) to associate with this task.
  - `predecessorIds` string[]: A list of task IDs (`uuid`) that must finish before this task can start. Requires `useDependencies` to be enabled on the project. The referenced tasks must belong to the same project.
  - `successorIds` string[]: A list of task IDs (`uuid`) that cannot start until this task finishes. Requires `useDependencies` to be enabled on the project. The referenced tasks must belong to the same project.
  - `taskCategoryId` string: The ID (`uuid`) of the task category to assign to this task.
  - `parentId` string, nullable: The ID (`uuid`) of the parent task to nest this task under.
  - `recordStatusId` 'active' | 'archived': The record status of the task, defaults to `active` if not set.

## Response `200`

200

- Task
  - `id` string: The unique identifier for the object.
  - `name` string: The name of the task.
  - `notes` string, nullable: Any notes associated with the task.
  - `order` integer: The display order position of the task (same value as `position`).
  - `position` integer: The numeric position of the task used for ordering.
  - `statusId` 'not_started' | 'in_progress' | 'completed': The status of the task.
  - `start` string, date, nullable: The start date for the task. Will be in the form YYYY-MM-DD.
  - `end` string, date, nullable: The end date for the task. Will be in the form YYYY-MM-DD. `null` if no end date is set.
  - `isBillable` boolean: Whether the task is billable. Overridden to `false` when the project is not billable.
  - `lockTime` boolean: When enabled, prevents new time entries from being created with this task.
  - `capHours` boolean: When enabled, prevents time entries that would exceed the budgeted hours for this task.
  - `capAssignedHours` boolean: When enabled, prevents time entries that would exceed the budgeted hours assigned to the role or member for this task.
  - `code` string, nullable: The task code.
  - `forAssignedOnly` boolean: When enabled, only assigned members and roles can track time to this task.
  - `requireNotes` boolean: Whether notes are required on time entries for this task. Overridden to `true` when the project requires notes.
  - `recordStatusId` 'active' | 'archived': The record status of the task.
  - `budgetedHours` number, nullable: The budgeted hours for the task.
  - `budgetedServicesRevenue` number, nullable: The budgeted services revenue for the task.
  - `createdAt` string, date-time: The timestamp when the object was created.
  - `modifiedAt` string, date-time: The timestamp when the object was last modified.
  - `project` object: The project this task belongs to.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the project.
    - `client` object: The client associated with the project.
      - `id` string: The unique identifier for the object.
      - `name` string: The name of the client.
  - `parent` object, nullable: The parent task this task is nested under, or `null` if it has no parent.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the parent task.
  - `roles` object[], nullable: The list of project roles assigned to this task. `null` when the project does not use roles.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the project role.
    - `hours` number, nullable: The budgeted hours allocated to this role for the task.
  - `projectMembers` object[]: The list of project members directly assigned to this task.
    - `id` string: The unique identifier for the object.
    - `member` object: The member associated with the project member assignment.
      - `id` string: The unique identifier for the object.
      - `name` string: The full name of the member.
    - `hours` number, nullable: The budgeted hours allocated to this member for the task. `null` when the project uses roles.
  - `tags` object[]: The list of tags associated with this task.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the tag.
  - `taskCategory` object: The task category associated with this task.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the task category.
    - `type` 'standard' | 'rollup' | 'milestone': The type of the task category.
  - `predecessors` object[], nullable: The tasks that must finish before this task can start. `null` when `useDependencies` is disabled on the project.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the predecessor task.
  - `successors` object[], nullable: The tasks that cannot start until this task finishes. `null` when `useDependencies` is disabled on the project.
    - `id` string: The unique identifier for the object.
    - `name` string: The name of the successor task.

## Other responses

- `400`: 400
- `404`: 404

---

[API](https://skmtc.dev/ruddr/apis/ruddr-api.md) · [All operations](https://skmtc.dev/ruddr/apis/ruddr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruddr/apis/ruddr-api/revisions/01c3f2a969ba?raw)
