v1Resources/Duplicate Listings/postResolve duplicate listings
Resolve duplicate listings
Flags duplicate listings for removal, or dismisses them, either by an explicit list of duplicateListingIds or by a filter matching the same shape as the rollup queue. Filter-mode runs as a single bulk update scoped to the intersection of the filter's own statuses and the action's eligible source statuses — it can never reach rows outside what that filter would show. Flagging does not remove the listing itself; it queues the removal request, which a background job carries out against the publisher.
post
listings:write/api/v1/listings/duplicates/resolveRequest body
actionstring (flag | dismiss)required
flag (request removal from the publisher) or dismiss (mark as not a duplicate).
duplicateListingIdsarray of stringoptional
Explicit ids to resolve, up to 1000. Mutually exclusive with filter.
filterobjectoptional
Resolve every eligible row matching this filter instead of naming ids explicitly. A key scoped to specific clients must also pass clientId when using filter mode.
filterstring (potential | flagged | deleted | failed)optional
Restrict to one status: potential, flagged, deleted, or failed.
bandstring (high | med | low)optional
Restrict to one confidence band: high, med, or low.
publisherSiteIdintegeroptional
Restrict to one publisher, by its numeric site id.
locationIdstringoptional
Restrict to one location.
searchstringoptional
Free-text search across business name, address, and phone.
clientIdstringoptional
Required when your key is scoped to specific clients and you're using filter mode (id-mode is self-limiting per id and doesn't need this).
Response
dataobjectoptional
updatednumberoptional
Number of duplicate listings that transitioned to the new status.
skippedarray of stringoptional
Requested ids that did NOT transition — not found, not owned by your agency/client, or not in an eligible source status. Always empty in filter mode.
Errors
400The request is missing a required parameter or is otherwise malformed.
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
429Too many requests. Retry after the number of seconds in the Retry-After header.
post/api/v1/listings/duplicates/resolve
Your API key
Request body*
{
"data": {
"updated": 3,
"skipped": []
}
}Guides that use this endpoint
- How to Build an AI Agent for Local SEOBuild an AI agent that audits and fixes listings, tracks local rankings, checks AI visibility and drafts review replies with Synup's MCP server or REST tools.
- How to Find and Remove Duplicate Business ListingsDetect duplicate business listings across publishers, review them by confidence, and flag them for removal or dismiss them with the Synup API.
- How Duplicate Listing Suppression WorksDuplicate suppression detects listings that look like the same business, scores them by confidence, and requests removal from the publisher that controls them.
- Suppress a Duplicate Listing via APIFlag a duplicate listing for removal with one Synup API call, by explicit ids or by filter, and what the flagged, deleted and failed states mean.