/api/v4/locations/{locationId}/listings/duplicatesGet duplicate listings for a location
Returns duplicate listing entries detected for a single location, grouped by publisher site.
Parameters
Path
| Name | Type | Required | Description |
|---|---|---|---|
| locationId | string | required | Location to read. Accepts a base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`) or a raw numeric location ID. |
Responses
200Duplicate listings grouped by site. Each group carries the primary listing plus an array of detected duplicates.
{
"data": {
"duplicateListingsForLocation": [
{
"id": "U2l0ZToxNTA=",
"name": "City Squares",
"url": "citysquares.com",
"listings": [
{
"id": "RHVwbGljYXRlOjIzNTk4NDUw",
"listingItemId": "TGlzdGluZ0l0ZW06MjM1OTg0NTA=",
"name": "Woodbury Train Station",
"liveLink": "http://citysquares.com/b/woodbury-train-station-23598450",
"status": "POTENTIAL"
}
]
}
]
}
}401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.
Returns every detected duplicate listing for one location, grouped by publisher site. Each group is a site (name, url) with a listings array of potential duplicates; each duplicate carries a listingItemId and a status. The live location Jenny Home currently has no duplicates and returns {"data":{"duplicateListingsForLocation":[]}}, so the populated group above is representative of the shape a location with duplicates returns.
Use case: clean up duplicates that hurt local SEO
Duplicate directory entries split ranking signals and confuse customers. Fetch this list for a location, review each group, and act on the ones that are genuinely duplicates. The listingItemId on each entry is exactly what Mark listing as duplicate expects in its listingItemIds array:
{
"locationId": "TG9jYXRpb246MTgwMDI4OQ==",
"listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="]
}
For entries that are actually the correct listing, dismiss them with Mark listing as not a duplicate so they stop showing up here.
Use case: per-location detail after an account sweep
Use this endpoint to drill into a single location after Get all duplicate listings for an account surfaces which locations have open duplicates, the account rollup tells you where, this endpoint tells you what, grouped by site.
status reflects handling state: POTENTIAL (detected, not yet acted on), PROCESSING, FIXED, or FAILED. This is a per-location list subject to the account rate limit, on 429, retry after the Retry-After header.
curl -X GET 'https://listingsapi.com/api/v4/locations/<locationId>/listings/duplicates' \
-H "Authorization: API $LISTINGSAPI_KEY"