Duplicate a task
Creates a copy of an existing task in the same project. The duplicated task keeps the source task configuration such as type, status, description, priority, assignee, accountable person, tags, custom fields, guest access, and task products. The new task title gets a (Copy) suffix. Accepts either a UUID or a numeric short number (with or without # prefix). Organization members can only duplicate tasks with guest access enabled.
POST
/tasks/{identifier}/duplicateAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:writeor
AuthorizationBearer token (JWT) · headerrequiredPath parameters
identifierstringrequiredTask UUID or short number (e.g., "550e8400-e29b-41d4-a716-446655440000" or "123" or "#123")
Query parameters
fieldsToReturnstringComma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestringAdvanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:
compactfullHeader parameters
LT-Response-ShapestringAdvanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:
fullResponses
201Task duplicated successfully
accountableobjectAccountable user details
accountableIdstringAccountable user ID
assignedToobjectAssigned user details
assignedToIdstringAssigned user ID
billedbooleanrequiredWhether task is billed
childSpentTimenumberrequiredChild tasks spent time in minutes
commentsany[][]requiredTask comments; each `body` is HTML and may contain the same embedded `appImage` / `appFile` / `appVideo` divs with `fileId` as the task description. Fetch binaries via authenticated `/api/public/workspace/files/{fileId}` with the same Public API Bearer token when needed.
componentItemIdobjectComponent item ID
createdAtstring<date-time>requiredTask creation timestamp
customFieldsobjectrequiredCustom fields values
deadlinestring<date-time>Task deadline
descriptionstringrequiredTask description in HTML. May include embedded assets as elements such as `<div data-type="appImage" fileId="…" filename="…">` (images), `appFile`, or `appVideo`—binary content is not embedded; use authenticated GET `{appOrigin}/api/public/workspace/files/{fileId}` with the same Public API Bearer token to retrieve it.
emailDetailsobjectEmail details
emailSendErrorstringEmail send error message
emailSendErrorCodestringEmail send error code
emailSendFailedAtstring<date-time>Email send failed timestamp
emailSendFailedToany[][]Email send failed recipients
enableSupportContingentbooleanrequiredEnable support contingent
estimatedTimenumberEstimated time in hours
guestAccessbooleanrequiredGuest access enabled for organization members
historyany[][]requiredTask history entries
iconobjectTask icon identifier in the format `:icon_name:` (e.g., `:rocket:`, `:bug:`, `:memo:`). Can be null if no custom icon is set.
iconIsGeneratingbooleanrequiredWhether icon is being generated by AI
idstringrequiredTask ID (UUID)
isChangeRequestbooleanrequiredWhether task is a change request
isParticipantbooleanrequiredWhether current user is a participant
notificationSettingsobjectrequiredNotification settings
parentTaskIdobjectParent task ID for subtasks
participantsCountnumberrequiredNumber of participants
participantsListany[][]requiredList of participant user IDs
priorityobjectrequiredTask priority (TaskPriority enum)
productsany[][]requiredTask products
projectobjectrequiredProject information
projectIdstringrequiredProject ID
quotationsany[][]requiredExpress quotations
shortNumbernumberrequiredTask short number (workspace-scoped)
skipFromBillingbooleanSkip from billing
spentTimenumberrequiredTotal spent time in minutes
statusIdstringrequiredTask status ID
subTasksIdsany[][]requiredChild task IDs
summarystringTask summary
summaryIsGeneratingbooleanrequiredWhether summary is being generated by AI
tagsany[][]requiredTask tags
titlestringrequiredTask title
titleIsGeneratingbooleanrequiredWhether title is being generated by AI
typeIdstringrequiredTask type ID
userIdstringrequiredCreator user ID
400Invalid identifier format (not UUID and not numeric)
401Unauthorized - Invalid or missing authentication token
403Access denied: Missing Tasks.create permission, no project access, or OrganizationMember accessing a non-guest task
404Task not found
Request
curl -X POST "https://leadtime.app/api/public/tasks/123/duplicate" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/tasks/123/duplicate", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.post(
"https://leadtime.app/api/public/tasks/123/duplicate",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
{
"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"
}Invalid identifier format (not UUID and not numeric)
Unauthorized - Invalid or missing authentication token
Access denied: Missing Tasks.create permission, no project access, or OrganizationMember accessing a non-guest task
Task not found