Duplicate Listings
Detecte, revise e resolva listagens duplicadas em diretórios.
Retorna as listagens duplicadas detectadas para um local, agrupadas por publisher, com contagens por status.
Obter listagens duplicadas de um local
/api/v1/listings/duplicates{
"data": {
"found": true,
"yourListing": {
"name": "Acme Dental — Downtown",
"address": "123 Main St, Austin, TX 78701",
"phone": "+15125551234"
},
"counts": {
"potential": 2,
"flagged": 1,
"deleted": 0,
"failed": 0
},
"groups": [
{
"publisherId": "yelp",
"publisherName": "Yelp",
"status": "potential",
"duplicates": [
{
"id": "dup_1",
"name": "Acme Dental Downtown",
"address": "123 Main St, Austin, TX",
"phone": "+15125551234",
"url": "https://yelp.com/biz/acme-dental-downtown",
"matchScore": 0.92
}
]
}
]
}
}Retorna um resumo agregado de listagens duplicadas e uma fila paginada em todos os locais de um cliente, ou de toda a agência quando clientId é omitido. Uma chave restrita a clientes específicos deve sempre passar um clientId — não há um padrão seguro para toda a agência.
Obter o resumo de listagens duplicadas
/api/v1/listings/duplicates/rollup{
"data": {
"summary": {
"potentialTotal": 14,
"locationsAffected": 6,
"bands": {
"high": 4,
"med": 7,
"low": 3
},
"topPublishers": [
{
"publisherId": "yelp",
"publisherName": "Yelp",
"count": 6
}
],
"publisherSites": [
{
"id": "yelp",
"name": "Yelp"
}
]
},
"queue": {
"rows": [
{
"id": "dup_1",
"locationId": "loc_456",
"locationName": "Acme Dental — Downtown",
"publisherId": "yelp",
"publisherName": "Yelp",
"name": "Acme Dental Downtown",
"matchScore": 0.92,
"status": "potential"
}
],
"total": 14,
"page": 1,
"perPage": 25
}
}
}Marca listagens duplicadas para remoção, ou as descarta, seja por uma lista explícita de duplicateListingIds ou por um filtro com o mesmo formato da fila do resumo. O modo de filtro é executado como uma única atualização em lote restrita à intersecção dos próprios status do filtro e dos status de origem elegíveis da ação — ele nunca pode alcançar linhas fora do que esse filtro mostraria. Marcar não remove a listagem em si; enfileira o pedido de remoção, que um job em segundo plano executa junto ao publisher.
Resolver listagens duplicadas
/api/v1/listings/duplicates/resolve{
"data": {
"updated": 3,
"skipped": []
}
}