I’m raising this request because I believe many of us are blocked by the lack of an API method to mark a task as a duplicate of another - i.e., the behaviour available in the UI (“Mark as duplicate of…”), which closes the duplicate and links it to the master task.
What I’m trying to do:
I’m building automation/integrations around Asana where tasks may arrive repeatedly, be identified as duplicates, and should automatically be closed and linked to the original. To do this reliably through code, I need a dedicated endpoint.
What I’ve tried so far:
• Reviewed the Tasks API & Stories API.
• Found `POST /tasks/{task_gid}/duplicate` which *creates a copy*, but does not create the “duplicate of” relationship.
• Inspected stories objects for duplicate_of, marked_duplicate, duplicate_merged — they appear as read‑only and can’t be triggered programmatically. For example, in the thread Find out task is “completed” as duplicate and link to parent (duplicating) task in API a former Developer Relations lead confirmed that there is no dedicated endpoint and suggested parsing the task name and stories instead.
“Task API lacks strict information about task being closed as duplicate of other and identifier of this other task.”
The answer: “There is no specific ‘duplicate’ endpoint in the API.”
Another participant in the same thread later noted that nothing has been added to the API.
• Explored related discussions, such as User has duplicated tasks, where users describe seeing duplicate tasks with identical names but different GIDs and where moderators note that such duplication often stems from user actions or automations and not from the API. These topics highlight confusion around duplicates and the absence of an API‑level solution.
Why this matters:
This is not just a nice-to-have. It touches on multiple user challenges:
• In task-duplication clean-up scenarios (see “User has duplicated tasks” thread)
• In workflows where deduplication is part of automation (so we don’t rely on manual UI clicks every time)
• In ensuring integrations remain robust: without an API method, one must parse task titles or task stories (fragile) rather than rely on a semantic duplicate link.
My proposal: Please consider adding something like:
POST /tasks/{task_gid}/mark_duplicate_of
Body: { "target_task_gid": "123456789" }
This endpoint would replicate the UI behaviour: mark the task as duplicate of `target_task_gid`, close it (or set it to completed), and link it to the master task.
Call to the community:
If you’ve run into this limitation - trying to detect duplicates automatically, automating cleanup, or keeping integrations aligned - please comment and up-vote. The more voices we get here, the more visible this becomes. Thanks! ![]()