Synupv1
Crear clave
v1Recursos/Duplicate Listings

Duplicate Listings

Detecte, revise y resuelva listados duplicados en los distintos directorios.

Devuelve los listados duplicados detectados para una ubicación, agrupados por publisher, con recuentos por estado.

Obtener los listados duplicados de una ubicación

get/api/v1/listings/duplicates
listings:read
Parámetros de consulta
locationIdstringobligatorio
La ubicación a consultar. Obligatorio.
clientIdstringopcional
El cliente de la ubicación. Solo es necesario para desambiguar cuando su clave está limitada a clientes específicos.
statusstring (potential | flagged | deleted | failed)opcional
Restringe los resultados a un estado: potential, flagged, deleted o failed. Los recuentos siempre se devuelven para todos los estados, independientemente de este filtro.
Respuesta
dataobjectopcional
foundbooleanopcional
Si la ubicación se encontró y era accesible para esta clave.
yourListingobjectopcional
El nombre, dirección y teléfono propios de esta ubicación, para comparar con cada fila duplicada. Ausente cuando found es false.
namestringopcional
El nombre comercial propio de esta ubicación.
addressstringopcional
La dirección propia de esta ubicación.
phonestringopcional
El número de teléfono propio de esta ubicación.
countsobjectopcional
Recuentos de listados duplicados de esta ubicación, por estado.
potentialnumberopcional
Número de duplicados pendientes de revisión.
flaggednumberopcional
Número de duplicados marcados para eliminación.
deletednumberopcional
Número de duplicados eliminados correctamente.
failednumberopcional
Número de duplicados cuyo intento de eliminación falló.
groupsarray of objectopcional
Listados duplicados, agrupados por publisher.
publisherIdstringopcional
Identificador del directorio/publisher (su URL de sitio).
publisherNamestringopcional
Nombre visible del publisher.
originalUrlstringopcional
URL en vivo del listado real propio de esta ubicación en este publisher, o null.
rowsarray of objectopcional
Los listados duplicados encontrados en este publisher.
idstringopcional
Identificador único de esta fila de listado duplicado.
businessNamestringopcional
Nombre del negocio tal como aparece en el listado duplicado.
businessNameMatchesbooleanopcional
Si el nombre del negocio del duplicado coincide con el nombre propio de esta ubicación.
addressstringopcional
Calle, ciudad y código postal del listado duplicado, combinados en una sola cadena.
addressMatchesbooleanopcional
Si la dirección del duplicado coincide con la dirección propia de esta ubicación.
phonestringopcional
Número de teléfono tal como aparece en el listado duplicado.
phoneMatchesbooleanopcional
Si el número de teléfono del duplicado coincide con el número de teléfono propio de esta ubicación.
matchScorenumberopcional
Confianza del modelo, de 0 a 1, de que se trata del mismo negocio que el listado real, o null si no se puntuó.
duplicateUrlstringopcional
URL en vivo del listado duplicado, o null.
statusstring (potential | flagged | deleted | failed)opcional
Uno de: potential, flagged, deleted, failed.
Errores
400A la solicitud le falta un parámetro obligatorio o es inválida de otra forma.
401La clave de API falta, es inválida, expiró o fue revocada.
403A la clave le falta el permiso requerido, o no está autorizada para este cliente/ubicación.
404El recurso no se encontró, o no pertenece a su agencia.
429Demasiadas solicitudes. Reintente tras el número de segundos indicado en el encabezado Retry-After.
get/api/v1/listings/duplicates
Su clave de API
locationId *
clientId
status
{
  "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
          }
        ]
      }
    ]
  }
}
v1Recursos/Duplicate Listings/getObtener el resumen de listados duplicados

Devuelve un resumen agregado de listados duplicados y una cola paginada en todas las ubicaciones de un cliente, o de toda la agencia cuando se omite clientId. Una clave limitada a clientes específicos siempre debe indicar un clientId — no existe un valor predeterminado seguro a nivel de agencia para ella.

Obtener el resumen de listados duplicados

get/api/v1/listings/duplicates/rollup
listings:read
Parámetros de consulta
clientIdstringopcional
Restringe el resumen a un cliente. Obligatorio cuando su clave está limitada a clientes específicos.
filterstring (potential | flagged | deleted | failed)opcional
Restringe la cola a un estado: potential, flagged, deleted o failed.
bandstring (high | med | low)opcional
Restringe la cola a un nivel de confianza: high, med o low.
publisherSiteIdintegeropcional
Restringe la cola a un publisher, por su id numérico de sitio (vea publisherSites en la respuesta).
locationIdstringopcional
Restringe la cola a una ubicación.
tagsstringopcional
Lista de etiquetas internas de ubicación separadas por comas. Solo se incluyen los duplicados de ubicaciones que tengan al menos una de estas etiquetas.
searchstringopcional
Búsqueda de texto libre en el nombre de negocio, la dirección y el teléfono de la cola.
sortstring (confidence | detected | lastSynced)opcional
Orden de la cola: confidence (mayor puntuación de coincidencia primero), detected (detectados más recientemente primero), o lastSynced (vistos más recientemente primero). El valor predeterminado es confidence.
pageintegeropcional
Número de página de la cola, empezando en 1. El valor predeterminado es 1.
perPageintegeropcional
Filas por página de la cola, de 1 a 100. El valor predeterminado es 25.
Respuesta
dataobjectopcional
summaryobjectopcional
Resumen agregado de listados duplicados en el alcance solicitado.
potentialTotalnumberopcional
Número total de duplicados potenciales (aún no resueltos) en el alcance.
locationsAffectednumberopcional
Número de ubicaciones distintas con al menos un duplicado potencial.
bandsobjectopcional
Recuentos de duplicados potenciales desglosados por nivel de confianza.
highnumberopcional
Recuento de duplicados potenciales con una puntuación de coincidencia de alta confianza.
mednumberopcional
Recuento de duplicados potenciales con una puntuación de coincidencia de confianza media.
lownumberopcional
Recuento de duplicados potenciales con una puntuación de coincidencia baja o sin puntuar.
topPublishersarray of objectopcional
Hasta 5 publishers con más duplicados potenciales, empezando por los peores.
publisherIdstringopcional
Identificador del directorio/publisher (su URL de sitio).
publisherNamestringopcional
Nombre visible del publisher.
countnumberopcional
Número de duplicados potenciales en este publisher.
publisherSitesarray of objectopcional
Todos los publishers con un duplicado visible en este alcance — la lista completa de opciones, a diferencia de topPublishers, que se limita a 5.
siteIdnumberopcional
Id numérico de sitio de este publisher, usable como filtro publisherSiteId del resumen o de resolve.
publisherIdstringopcional
Identificador del directorio/publisher (su URL de sitio).
publisherNamestringopcional
Nombre visible del publisher.
queueobjectopcional
La lista paginada y filtrable de filas de duplicados individuales en las ubicaciones del alcance.
rowsarray of objectopcional
Las filas de duplicados de la página actual.
idstringopcional
Identificador único de esta fila de listado duplicado.
locationIdstringopcional
ID de la ubicación a la que pertenece este duplicado.
locationNamestringopcional
Nombre de la ubicación a la que pertenece este duplicado.
citystringopcional
Ciudad de la ubicación a la que pertenece este duplicado, o null.
locationStreetstringopcional
Dirección postal de la ubicación a la que pertenece este duplicado.
locationStatestringopcional
Estado o región de la ubicación a la que pertenece este duplicado.
locationPostalCodestringopcional
Código postal de la ubicación a la que pertenece este duplicado.
publisherIdstringopcional
Identificador del directorio/publisher (su URL de sitio).
publisherNamestringopcional
Nombre visible del publisher.
businessNamestringopcional
Nombre del negocio tal como aparece en el listado duplicado.
businessNameMatchesbooleanopcional
Si el nombre del negocio del duplicado coincide con el nombre propio de esta ubicación.
addressstringopcional
Calle, ciudad y código postal del listado duplicado, combinados en una sola cadena.
addressMatchesbooleanopcional
Si la dirección del duplicado coincide con la dirección propia de esta ubicación.
phonestringopcional
Número de teléfono tal como aparece en el listado duplicado.
phoneMatchesbooleanopcional
Si el número de teléfono del duplicado coincide con el número de teléfono propio de esta ubicación.
matchScorenumberopcional
Confianza del modelo, de 0 a 1, de que se trata del mismo negocio que el listado real, o null si no se puntuó.
bandstring (high | med | low)opcional
Nivel de confianza de la puntuación de coincidencia de esta fila: high, med o low.
statusstring (potential | flagged | deleted | failed)opcional
Uno de: potential, flagged, deleted, failed.
duplicateUrlstringopcional
URL en vivo del listado duplicado, o null.
originalUrlstringopcional
URL en vivo del listado real propio de esta ubicación en este publisher, o null.
detectedAtstringopcional
Cuándo se detectó por primera vez este duplicado, como marca de tiempo ISO 8601.
lastSyncedAtstringopcional
Cuándo se vio este duplicado por última vez durante un escaneo, como marca de tiempo ISO 8601.
yourNamestringopcional
El nombre comercial propio de la ubicación propietaria, para comparación.
yourAddressstringopcional
La dirección propia de la ubicación propietaria, para comparación.
yourPhonestringopcional
El número de teléfono propio de la ubicación propietaria, para comparación.
tagsarray of stringopcional
Las etiquetas internas de la ubicación propietaria.
totalnumberopcional
Número total de filas que coinciden con el filtro actual, en todas las páginas.
pagenumberopcional
Número de página actual.
perPagenumberopcional
Filas por página.
Errores
401La clave de API falta, es inválida, expiró o fue revocada.
403A la clave le falta el permiso requerido, o no está autorizada para este cliente/ubicación.
429Demasiadas solicitudes. Reintente tras el número de segundos indicado en el encabezado Retry-After.
get/api/v1/listings/duplicates/rollup
Su clave de API
clientId
filter
band
publisherSiteId
locationId
tags
search
sort
page
perPage
{
  "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
    }
  }
}
v1Recursos/Duplicate Listings/postResolver listados duplicados

Marca listados duplicados para su eliminación (flag), o los descarta (dismiss), ya sea mediante una lista explícita de duplicateListingIds o mediante un filtro con la misma forma que la cola del resumen. El modo de filtro se ejecuta como una única actualización masiva limitada a la intersección entre los propios estados del filtro y los estados de origen admitidos por la acción — nunca puede alcanzar filas fuera de lo que ese filtro mostraría. Marcar no elimina el listado en sí; encola la solicitud de eliminación, que un trabajo en segundo plano ejecuta frente al publisher.

Resolver listados duplicados

post/api/v1/listings/duplicates/resolve
listings:write
Cuerpo de la solicitud
actionstring (flag | dismiss)obligatorio
flag (solicitar la eliminación al publisher) o dismiss (marcar como que no es un duplicado).
duplicateListingIdsarray of stringopcional
IDs explícitos a resolver, hasta 1000. Mutuamente excluyente con filter.
filterobjectopcional
Resuelve toda fila admisible que coincida con este filtro, en lugar de indicar ids explícitamente. Una clave limitada a clientes específicos también debe indicar clientId al usar el modo de filtro.
filterstring (potential | flagged | deleted | failed)opcional
Restringe a un estado: potential, flagged, deleted o failed.
bandstring (high | med | low)opcional
Restringe a un nivel de confianza: high, med o low.
publisherSiteIdintegeropcional
Restringe a un publisher, por su id numérico de sitio.
locationIdstringopcional
Restringe a una ubicación.
searchstringopcional
Búsqueda de texto libre en el nombre de negocio, la dirección y el teléfono.
clientIdstringopcional
Obligatorio cuando su clave está limitada a clientes específicos y usa el modo de filtro (el modo por id ya se autolimita por cada id y no lo necesita).
Respuesta
dataobjectopcional
updatednumberopcional
Número de listados duplicados que pasaron al nuevo estado.
skippedarray of stringopcional
IDs solicitados que NO cambiaron de estado — no encontrados, no pertenecientes a su agencia/cliente, o no en un estado de origen admisible. Siempre vacío en el modo de filtro.
Errores
400A la solicitud le falta un parámetro obligatorio o es inválida de otra forma.
401La clave de API falta, es inválida, expiró o fue revocada.
403A la clave le falta el permiso requerido, o no está autorizada para este cliente/ubicación.
429Demasiadas solicitudes. Reintente tras el número de segundos indicado en el encabezado Retry-After.
post/api/v1/listings/duplicates/resolve
Su clave de API
Cuerpo de la solicitud*
{
  "data": {
    "updated": 3,
    "skipped": []
  }
}