Duplicates
When several people review the same page, the same problem is often reported more than once. Merging folds the duplicate threads into one thread, so the problem appears once in the list and the kept thread shows how many people reported it.
You merge threads with a coding agent connected over MCP or with the REST API. The web app, the Chrome extension and the review badge don’t have a merge control.
Merge with a coding agent
Ask your agent to find and merge duplicates, for example:
Find open threads on the checkout page that report the same problem and merge them.The agent calls find_similar to find likely duplicates, then merge_items to
merge them. merge_items is marked as destructive, so most clients ask you to
approve it first. See find_similar and
merge_items.
Merge with the API
Send the thread to keep as itemId and the duplicates as duplicateIds:
curl -X POST https://app.skyelight.ai/api/v1/items/merge \
-H "Authorization: Bearer $SKYELIGHT_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "itemId": "ITEM_ID", "duplicateIds": ["DUP_1", "DUP_2"] }'The response gives the number of threads merged and the ID of the thread they were merged into:
{ "merged": 2, "canonicalId": "ITEM_ID" }See Merge duplicates in the endpoint reference.
What a merge changes
- Each duplicate is hidden from thread lists, in the app and over MCP and the API.
- Nothing is deleted. Each duplicate keeps its replies, author, anchor, screenshot and page context.
- The kept thread counts each duplicate as an extra report.
list_itemsandget_itemreturn this asreportCountwhen it’s more than 1. - Threads that were already merged into a duplicate move to the kept thread.
- If the thread you keep was itself merged into another thread, the duplicates
go to that other thread, and
canonicalIdin the response names it.
Rules and limits
- Owners, admins and collaborators can merge. Reviewers can’t.
- All the threads must be in the same project. A duplicate from another project is refused as not found.
- Merge threads, not replies. A reply ID is refused.
- A merge takes up to 50 duplicates.
- The kept thread and threads already merged into it are skipped if you list
them as duplicates, and they don’t count toward
merged. - A merge can’t be undone through MCP, the API or the app.