/api/v4/locations/listings/mark-as-not-duplicateMark listing as not a duplicate
Dismisses one or more potential duplicates as false positives so they stop appearing in the duplicates list.
Parameters
Body
| Name | Type | Required | Description |
|---|---|---|---|
| listingItemIds | array | required | Array of base64-encoded listing item IDs to dismiss as not duplicates. Use the `listingItemId` values from the duplicate-listings endpoints. |
| locationId | string | optional | Location that owns the listing items (base64-encoded Relay ID or raw numeric ID). Scopes the operation to a single location. |
Sample request
Ready-to-paste body. Replace placeholder IDs and values with yours.
{
"locationId": "TG9jYXRpb246MTgwMDI4OQ==",
"listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="]
}Responses
200Listing items dismissed as not duplicates. On failure, `success` is `false` and `errors` describes why.
{
"data": {
"markAsNotDuplicate": {
"success": true,
"errors": null
}
}
}400Validation error — e.g. an unknown or malformed listing item ID. See the `errors` array (`code`, `message`, `path`).
401Unauthenticated — missing or invalid API key.
Dismisses potential duplicates as false positives. Once dismissed, the items are marked as confirmed non-duplicates and no longer surface in Get duplicate listings for a location or the account-wide rollup. Populate listingItemIds with the listingItemId values from those endpoints.
Use case: clear false positives from the queue
Detection is conservative and will flag legitimate listings that merely look similar (a second valid profile, a franchise sibling, a renamed location). When a reviewer confirms an entry is the correct listing, dismiss it so it stops cluttering the duplicates queue:
{
"locationId": "TG9jYXRpb246MTgwMDI4OQ==",
"listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="]
}
listingItemIds is required and accepts multiple IDs — batch all the false positives for a location into one call. A 200 with success: true confirms the dismissal; success: false or a 400 returns a populated errors array to inspect.
Use case: the inverse of suppression
This endpoint is the counterpart to Mark listing as duplicate and takes the identical body shape — use it to reverse an item that was flagged in error. Both are write operations that count against the account rate limit, so prefer batching over per-item requests.
curl -X POST 'https://listingsapi.com/api/v4/locations/listings/mark-as-not-duplicate' \
-H "Authorization: API $LISTINGSAPI_KEY" \
-H 'Content-Type: application/json' \
-d '{
"listingItemIds": "<listingItemIds>",
"locationId": "<locationId>"
}'