Update a task
Updates an existing task with partial data. Only provided fields will be updated, allowing you to modify specific properties without affecting others. The identifier can be either a UUID or a numeric short number (with or without # prefix). When updating the description, HTML or Markdown format is accepted and will be converted to the internal editor format. Changing the task type automatically updates the status if needed. Changing the project cascades to subtasks and time logs. Description mentions trigger notifications to mentioned users. Field-specific authorization matches the internal product API: most fields require project access only, description updates require authorship or Tasks.editAnyTitleAndDescription, project moves require Tasks.changeProject, and support contingent toggles require Tasks.toggleSupportContingent. Organization members can only update tasks with guestAccess enabled.
/tasks/{identifier}AuthorizationOAuth2 access token · headerrequiredapi:writeAuthorizationBearer token (JWT) · headerrequiredidentifierstringrequiredfieldsToReturnstringresponseShapestringcompactfullLT-Response-Shapestringfullapplication/jsonaccountableIdobjectassignedToIdobjectcustomFieldsobject[]Show propertiesHide properties
objectfieldIdstring<uuid>valuestringdeadlinestringdescriptionstringenableSupportContingentbooleanestimatedTimenumberguestAccessbooleaniconobjectisChangeRequestbooleanprioritystringLowNormalHighprojectIdstringstatusIdstringsubTasksIdsstring[]summarystringtagsstring[]titlestringtypeIdstringaccountableobjectaccountableIdstringassignedToobjectassignedToIdstringbilledbooleanrequiredchildSpentTimenumberrequiredcommentsany[][]requiredcomponentItemIdobjectcreatedAtstring<date-time>requiredcustomFieldsobjectrequireddeadlinestring<date-time>descriptionstringrequiredemailDetailsobjectemailSendErrorstringemailSendErrorCodestringemailSendFailedAtstring<date-time>emailSendFailedToany[][]enableSupportContingentbooleanrequiredestimatedTimenumberguestAccessbooleanrequiredhistoryany[][]requirediconobjecticonIsGeneratingbooleanrequiredidstringrequiredisChangeRequestbooleanrequiredisParticipantbooleanrequirednotificationSettingsobjectrequiredparentTaskIdobjectparticipantsCountnumberrequiredparticipantsListany[][]requiredpriorityobjectrequiredproductsany[][]requiredprojectobjectrequiredprojectIdstringrequiredquotationsany[][]requiredshortNumbernumberrequiredskipFromBillingbooleanspentTimenumberrequiredstatusIdstringrequiredsubTasksIdsany[][]requiredsummarystringsummaryIsGeneratingbooleanrequiredtagsany[][]requiredtitlestringrequiredtitleIsGeneratingbooleanrequiredtypeIdstringrequireduserIdstringrequiredcurl -X PATCH "https://leadtime.app/api/public/tasks/123" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"accountableId": {},
"assignedToId": {},
"customFields": [
{
"fieldId": "<uuid>",
"value": "string"
}
],
"deadline": "string",
"description": "string",
"enableSupportContingent": true,
"estimatedTime": 2.5,
"guestAccess": false,
"icon": {},
"isChangeRequest": true,
"priority": "Low",
"projectId": "string",
"statusId": "string",
"subTasksIds": [
"string"
],
"summary": "string",
"tags": [
"string"
],
"title": "string",
"typeId": "string"
}'const response = await fetch("https://leadtime.app/api/public/tasks/123", {
method: "PATCH",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"accountableId": {},
"assignedToId": {},
"customFields": [
{
"fieldId": "<uuid>",
"value": "string"
}
],
"deadline": "string",
"description": "string",
"enableSupportContingent": true,
"estimatedTime": 2.5,
"guestAccess": false,
"icon": {},
"isChangeRequest": true,
"priority": "Low",
"projectId": "string",
"statusId": "string",
"subTasksIds": [
"string"
],
"summary": "string",
"tags": [
"string"
],
"title": "string",
"typeId": "string"
})
});import requests
response = requests.patch(
"https://leadtime.app/api/public/tasks/123",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"accountableId": {},
"assignedToId": {},
"customFields": [
{
"fieldId": "<uuid>",
"value": "string"
}
],
"deadline": "string",
"description": "string",
"enableSupportContingent": True,
"estimatedTime": 2.5,
"guestAccess": False,
"icon": {},
"isChangeRequest": True,
"priority": "Low",
"projectId": "string",
"statusId": "string",
"subTasksIds": [
"string"
],
"summary": "string",
"tags": [
"string"
],
"title": "string",
"typeId": "string"
},
){
"accountable": {},
"accountableId": "string",
"assignedTo": {},
"assignedToId": "string",
"billed": true,
"childSpentTime": 0,
"comments": [
[
null
]
],
"componentItemId": {},
"createdAt": "2024-01-01T00:00:00Z",
"customFields": {},
"deadline": "2024-01-01T00:00:00Z",
"description": "string",
"emailDetails": {},
"emailSendError": "string",
"emailSendErrorCode": "string",
"emailSendFailedAt": "2024-01-01T00:00:00Z",
"emailSendFailedTo": [
[
null
]
],
"enableSupportContingent": true,
"estimatedTime": 0,
"guestAccess": true,
"history": [
[
null
]
],
"icon": {},
"iconIsGenerating": true,
"id": "string",
"isChangeRequest": true,
"isParticipant": true,
"notificationSettings": {},
"parentTaskId": {},
"participantsCount": 0,
"participantsList": [
[
null
]
],
"priority": {},
"products": [
[
null
]
],
"project": {},
"projectId": "string",
"quotations": [
[
null
]
],
"shortNumber": 0,
"skipFromBilling": true,
"spentTime": 0,
"statusId": "string",
"subTasksIds": [
[
null
]
],
"summary": "string",
"summaryIsGenerating": true,
"tags": [
[
null
]
],
"title": "string",
"titleIsGenerating": true,
"typeId": "string",
"userId": "string"
}