---
title: "Update Task"
method: PUT
path: "/tasks/{taskId}"
tags: ["Tasks"]
---

# Update Task

`PUT /tasks/{taskId}`

Update task.

<b>Scopes:</b> Default, wsReadWrite

## Path parameters

- `taskId` string, required

## Query parameters

- `title` string — Title of task
- `description` string — Task Description
- `status` 'Active' | 'Deferred' | 'Completed' | 'Cancelled' — * `Active` - Active * `Deferred` - Deferred * `Completed` - Completed * `Cancelled` - Cancelled
- `importance` 'High' | 'Low' | 'Normal' — * `High` * `Low` * `Normal`
- `follow` boolean — Follow task
- `priorityBefore` string
- `priorityAfter` string
- `customStatus` string
- `restore` boolean — Restore task from Recycled Bin
- `billingType` 'Billable' | 'NonBillable' — * `Billable` - Billable * `NonBillable` - Non-Billable
- `withInvitations` boolean — Include invitations in sharedIds & responsibleIds lists
- `convertToCustomItemType` string
- `plainTextCustomFields` boolean — Strip HTML tags from custom fields
- `workScheduleId` string

## Response `2XX`

success response

- object
  - `data` Task[]
    - `metadata` Metadata[] — List of task metadata entries
      - `value` string, required — Value should be less than 1000 symbols, compatible with JSON string. Use JSON 'null' in order to remove metadata entry
      - `key` string, required — Key should be less than 50 symbols and match following regular expression ([A-Za-z0-9_-]+)
    - `importance` 'High' | 'Low' | 'Normal' — * `High` * `Low` * `Normal`
    - `customFields` CustomField[] — Custom fields
      - `id` string, required
      - `value` string, required — Custom field value. 4000 characters max. Should be valid string according to JSON RFC 8259. In particular, following characters must be escaped: quotation mark, reverse solidus, and the control characters (U+0000 through U+001F). Any character may be escaped, but unnecessarily escaped character can be implicitly translated to it's unescaped version. <br> In addition to RFC 8259 requirements, it is not recommended to use any of control characters in CF value.<br>Wrike's API forbids using U+0000 in every place and U+0011 at the beginning of the CF value string.<br>The correct way for setting multiple values in the multiple select Custom fields is ?customFields=[{"id":"CustomFieldId","value":"[\"value1\",\"value2\"]"}]<br>The correct way for setting values in the people Custom fields is ?customFields=[{"id":"CustomFieldId","value":"UserId1, UserId2"}]<br> Note that if custom field values are passed to API as URI param of request, they must be URI encoded. Here are some examples:<br>"%5c" - reverse solidus (backslash)<br>"%5c%22" - quotation mark<br>"Vi%5Cu1ec7t" - unicode-escaped character in word "Việt"<br>
    - `followerIds` UserId[] — List of user IDs, who follows task
    - `parentIds` FolderId[] — List of task parent folder IDs
    - `description` string — Description
    - `responsiblePlaceholderIds` PlaceholderId[] — List of placeholder assignee Ids
    - `updatedDate` string — Updated date<br>Format: yyyy-MM-dd'T'HH:mm:ss'Z'
    - `title` string — Title, cannot be empty
    - `followedByMe` boolean — Is a task followed by me
    - `billingType` 'Billable' | 'NonBillable' — * `Billable` - Billable * `NonBillable` - Non-Billable
    - `scope` 'WsTask' | 'RbRoot' | 'RbFolder' | 'WsFolder' | 'WsRoot' | 'RbTask' — * `WsTask` - Task in account * `RbRoot` - Virtual Recycle Bin folder of account * `RbFolder` - Folder is in Recycle Bin (deleted folder) * `WsFolder` - Folder in account * `WsRoot` - Virtual root folder of account * `RbTask` - Task is in Recycle Bin (deleted task)
    - `id` string
    - `effortAllocation` TaskEffort
      - `dailyAllocationPercentage` number — Allocation in percentages per day, for effort daily mode
      - `mode` 'Basic' | 'Flexible' | 'FullTime' | 'None', required — * `Basic` * `Flexible` * `FullTime` * `None`
      - `allocatedEffort` number — Allocated Effort in minutes
      - `totalEffort` number — Total Effort in minutes
      - `responsibleAllocation` ResponsibleAllocation[] — Responsible allocations by day
        - `placeholderId` string
        - `dailyAllocation` DailyAllocation[], required — Daily allocations
          - `date` string, required — Allocation date<br>Format: yyyy-MM-dd
          - `effortMinutes` number, required — Effort in minutes
        - `userId` string
    - `hasAttachments` boolean — Has attachments
    - `subTaskIds` TaskId[] — List of subtask IDs
    - `recurrent` boolean — Is a task recurrent
    - `authorIds` UserId[] — List of author IDs (currently contains 1 element)
    - `responsibleIds` UserId[] — List of assignee user IDs
    - `customItemTypeId` string
    - `sharedIds` UserId[] — Users with whom the task is shared
    - `dates` TaskDates — Field values limits: duration - [0, 1800000) start & due - [1970-01-01T00:00:00, 2100-01-01T00:00:00)
      - `duration` number — Duration in minutes. Duration is present in Planned tasks and is optional for Backlog tasks.<br> When updating duration, ensure to re-submit the start and due dates, even if they are to stay the same. Otherwise, the dates will be cleared.<br> When present for Planned tasks and due date is not given, this field limit is [1, 1800000).<br> Note that 1 day in Wrike is equal to 8 hours, or 480 minutes.
      - `due` string — Due date is present only in Planned and Milestone tasks. When setting this field alone, the task will default to a milestone.<br>Format: yyyy-MM-dd'T'HH:mm:ss ('T'HH:mm:ss is optional)
      - `start` string — Start date is present only in Planned tasks. Important: If setting a start date, always include either a due date or duration.<br>Format: yyyy-MM-dd'T'HH:mm:ss ('T'HH:mm:ss is optional)
      - `workOnWeekends` boolean — Weekends are included in task scheduling
      - `type` 'Milestone' | 'Backlog' | 'Planned' — * `Milestone` * `Backlog` * `Planned`
    - `superTaskIds` TaskId[] — List of super task IDs
    - `priority` string — Ordering key that defines task order in tasklist
    - `completedDate` string — Completed date<br>Format: yyyy-MM-dd'T'HH:mm:ss'Z'
    - `superParentIds` FolderId[] — List of folder IDs inherited from parent task
    - `accountId` string
    - `dependencyIds` DependencyId[] — List of dependency IDs
    - `createdDate` string — Created date<br>Format: yyyy-MM-dd'T'HH:mm:ss'Z'
    - `cascadingFieldSettings` CascadingFieldSettings[] — Cascading field settings
      - `systemField` boolean — System field
      - `enabledBy` string
      - `enabledAt` string — Enabled at<br>Format: yyyy-MM-dd'T'HH:mm:ss'Z'
      - `fieldId` string
    - `customStatusId` string
    - `attachmentCount` number — Total count of task attachments
    - `workScheduleId` string
    - `permalink` string — Link to open task in web workspace, if user has appropriate access
    - `briefDescription` string — Brief description
    - `finance` TaskFinance
      - `plannedCost` number — Planned cost
      - `plannedFees` number — Planned fees
      - `currency` string — Currency
      - `actualFees` number — Actual fees
      - `actualCost` number — Actual cost
    - `status` 'Active' | 'Deferred' | 'Completed' | 'Cancelled' — * `Active` - Active * `Deferred` - Deferred * `Completed` - Completed * `Cancelled` - Cancelled
  - `kind` 'accounts' | 'users' | 'contacts' | 'assets' | 'eDiscoveryReport' | 'folders' | 'folderTree' | 'tasks' | 'taskIds' | 'timelogs' | 'timelogCategories' | 'timelogLockPeriods' | 'timetrackerTimers' | 'comments' | 'attachments' | 'url' | 'version' | 'dataExport' | 'dataExportSchema' | 'auditLog' | 'accessRoles' | 'stream' | 'changes' | 'posts' | 'mailSettings' | 'integrationInfo' | 'gmailIntegrationSettings' | 'workTypesForIntegrations' | 'ids' | 'backups' | 'domains' | 'dependencies' | 'workflows' | 'workschedules' | 'workscheduleExclusions' | 'workscheduleUserExclusions' | 'customfields' | 'customfieldIds' | 'customstatuses' | 'invitations' | 'notifications' | 'jobroles' | 'placeholders' | 'groups' | 'session' | 'dashboards' | 'widgets' | 'taskCreationSettings' | 'colors' | 'experiments' | 'topics' | 'topicComments' | 'webhooks' | 'reviews' | 'boards' | 'textSearch' | 'chatChannels' | 'chatMessages' | 'forms' | 'requestForms' | 'request' | 'report' | 'platformWidgets' | 'platformWidgetInstances' | 'spaces' | 'pdf' | 'customerSatisfaction' | 'asyncJob' | 'approvals' | 'highlights' | 'highlightsList' | 'highlightsSettings' | 'highlightsCard' | 'timesheet' | 'timesheetRow' | 'timesheetSubmissionRule' | 'mobileFeatures' | 'mobileSettings' | 'folderBlueprintTree' | 'taskBlueprintTree' | 'feedback' | 'timeline_snapshot' | 'contactIds' | 'bookings' | 'integrateThreshold' | 'hourlyRatesProvision' | 'hourlyRates' | 'projectTeamMembers' | 'contactsHistory' | 'tasksHistory' | 'foldersHistory' | 'activityDigest' | 'workItemTemplates' | 'workTemplates' | 'workItemMetadata' | 'workItem' | 'customItemTypes' | 'verificationCode' | 'views' | 'listView' | 'tableView' | 'userTypes' | 'reactions' | 'externalRequesters' | 'workscheduleCapacityOverrides' | 'userCapacityOverrides' | 'userCapacityExclusions' | 'rollups' | 'requestFormPrefill' | 'userAggregatedCapacity' | 'cascadingFieldSettings'

## Other responses

- `4XX` — client-side error response
- `5XX` — server-side error response

---

[API](https://skmtc.net/wrike/apis/wrike-api.md) · [All operations](https://skmtc.net/wrike/apis/wrike-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wrike/wrike-api/revisions/f1c1279c29d6/schema)
