Synupv1
Crear clave
v1Recursos/Listados publicados

Listados publicados

Consulte el estado de sincronización de listados de una ubicación en los distintos directorios.

Devuelve el estado de sincronización entre publishers, el estado del perfil de Google Business y las oportunidades de mejora de una ubicación.

Obtener el listado de una ubicación

get/api/v1/listings
listings:read
Parámetros de consulta
locationIdstringobligatorio
La ubicación a consultar. Obligatorio. Búsquelo con GET /api/v1/locations.
clientIdstringopcional
El cliente de la ubicación. Solo necesario para desambiguar cuando su clave está limitada a clientes específicos.
Respuesta
dataobjectopcional
statsobjectopcional
Cifras resumidas de todos los publishers de esta ubicación.
publishersnumberopcional
Número total de publishers registrados.
syncednumberopcional
Número de publishers actualmente sincronizados.
notConnectednumberopcional
Número de publishers aún no conectados.
googleVerifiedLocationsnumberopcional
Número de ubicaciones verificadas por Google.
duplicatesnumberopcional
Número de listados duplicados detectados.
connectionIssuesnumberopcional
Número de publishers con un problema de conexión.
requiresActionnumberopcional
Número de publishers que requieren una acción.
publishersarray of objectopcional
Estado de sincronización por publisher.
publisherIdstringopcional
Identificador del directorio/publisher.
publisherNamestringopcional
Nombre visible del publisher.
statusstring (synced | in_progress | failed | requires_action | not_connected | expired | suspended | pending_approval | inaccessible | credentials_invalidated | not_available)opcional
Uno de: synced, in_progress, failed, requires_action, not_connected, expired, suspended, pending_approval, inaccessible, credentials_invalidated, not_available.
liveLinksnumberopcional
Número de enlaces activos encontrados para este publisher, o null.
gbpobjectopcional
Resumen del perfil de Google Business, cuando está conectado.
connectedbooleanopcional
Si hay un perfil de Google Business conectado.
scorenumberopcional
Puntuación de completitud del perfil, 0–100, o null.
donearray of stringopcional
Elementos de mejora del perfil ya completados.
todoarray of stringopcional
Elementos de mejora del perfil pendientes.
opportunitiesarray of objectopcional
Mejoras sugeridas, cada una con un mensaje breve y un tono.
textstringopcional
tonestring (amber | rose | blue | zinc)opcional
aiobjectopcional
Un breve titular generado por IA y hasta 3 correcciones priorizadas para esta ubicación, o null.
headlinestringopcional
Resumen de una frase sobre el estado de los listados de esta ubicación.
fixFirstarray of objectopcional
Hasta 3 acciones sugeridas, ordenadas por impacto.
textstringopcional
impactstring (High | Med | Low)opcional
noticestringopcional
Un aviso legible sobre los datos de listados de esta ubicación, o null.
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
Su clave de API
locationId *
clientId
{
  "data": {
    "stats": {
      "publishers": 42,
      "synced": 38,
      "notConnected": 2,
      "googleVerifiedLocations": 1,
      "duplicates": 0,
      "connectionIssues": 1,
      "requiresAction": 1
    },
    "publishers": [
      {
        "publisherId": "google",
        "publisherName": "Google",
        "status": "synced",
        "liveLinks": 1
      }
    ],
    "gbp": {
      "connected": true,
      "score": 82,
      "done": [
        "Business name",
        "Address"
      ],
      "todo": [
        "Add photos"
      ]
    },
    "opportunities": [
      {
        "text": "Add more photos to your Google profile",
        "tone": "amber"
      }
    ],
    "ai": {
      "headline": "90% synced — 1 listing needs action.",
      "fixFirst": [
        {
          "text": "Reconnect 1 listing needing action.",
          "impact": "High"
        }
      ]
    },
    "notice": null
  }
}
v1Recursos/Listados publicados/getObtener un resumen de listados

Estado de sincronización de publishers en las ubicaciones de este cliente (o de toda la agencia) — un resumen agregado más un desglose por ubicación, insights (% de salud, distribución de sincronización, publishers más débiles, elementos priorizados "requiere atención") y un titular determinista. Limita el alcance con tags. Usa el mismo rollup que la vista Listados → Todas las ubicaciones.

Obtener un resumen de listados

get/api/v1/listings/summary
listings:read
Parámetros de consulta
clientIdstringopcional
Limitar a las ubicaciones de un cliente.
tagsstringopcional
Nombres de tags de ubicación separados por comas — solo se incluyen las ubicaciones con al menos uno de estos.
pageintegeropcional
Página de filas por ubicación (base 1). Por defecto 1.
perPageintegeropcional
Filas por página (máx. 200). Por defecto 50.
Respuesta
dataobjectopcional
summaryobjectopcional
Recuentos agregados de todas las ubicaciones en el alcance.
locationsnumberopcional
Número de ubicaciones en el alcance.
publishersTotalnumberopcional
Total de espacios de publisher en todas las ubicaciones del alcance.
publishersSyncednumberopcional
De ellos, actualmente sincronizados.
connectionIssuesnumberopcional
Filas de conectores nativos (Google/Facebook) con un problema de conexión.
duplicatesnumberopcional
Listados duplicados detectados en el alcance.
reviewsnumberopcional
Total de reseñas en el alcance.
avgRatingnumberopcional
Calificación promedio entre las ubicaciones que tienen una.
rowsarray of objectopcional
Una fila por ubicación en el alcance (paginada).
locationIdstringopcional
ID de la ubicación.
namestringopcional
Nombre de la ubicación.
citystringopcional
Ciudad de la ubicación.
publishersnumberopcional
Espacios de publisher para esta ubicación.
syncednumberopcional
De ellos, actualmente sincronizados.
connectionIssuesnumberopcional
Filas de conectores nativos con un problema de conexión.
duplicatesnumberopcional
Listados duplicados detectados para esta ubicación.
reviewsnumberopcional
Total de reseñas de esta ubicación.
unrepliednumberopcional
Reseñas pendientes de respuesta.
avgRatingnumberopcional
Calificación promedio de esta ubicación.
googleVerifiedbooleanopcional
El listado de Google está conectado y verificado.
googleConnectedbooleanopcional
Google está conectado (puede seguir pendiente de verificación).
tagsarray of stringopcional
Tags internos de esta ubicación.
insightsobjectopcional
Insights derivados calculados a partir de las filas anteriores.
healthnumberopcional
publishersSynced / publishersTotal, como porcentaje.
distributionobjectopcional
Ubicaciones agrupadas por tasa de sincronización (fullySynced 100 %, healthy 90-99 %, atRisk <90 %).
fullySyncednumberopcional
Ubicaciones al 100 % de sincronización.
healthynumberopcional
Ubicaciones al 90-99 % de sincronización.
atRisknumberopcional
Ubicaciones por debajo del 90 % de sincronización.
weakestarray of objectopcional
Publishers con menor cobertura en el alcance.
idstringopcional
ID del publisher.
namestringopcional
Nombre del publisher.
totalnumberopcional
Ubicaciones que tienen este publisher.
syncednumberopcional
De ellas, sincronizadas.
requiresActionnumberopcional
De ellas, que requieren acción.
notConnectednumberopcional
De ellas, no conectadas.
pctnumberopcional
Porcentaje sincronizado, redondeado.
directoriesarray of objectopcional
Tabla completa de cobertura por publisher.
idstringopcional
ID del publisher.
namestringopcional
Nombre del publisher.
totalnumberopcional
Ubicaciones que tienen este publisher.
syncednumberopcional
De ellas, sincronizadas.
requiresActionnumberopcional
De ellas, que requieren acción.
notConnectednumberopcional
De ellas, no conectadas.
pctnumberopcional
Porcentaje sincronizado, redondeado.
attentionarray of objectopcional
Tarjetas priorizadas de "requiere atención".
nnumberopcional
Cantidad que representa esta tarjeta.
titlestringopcional
Título de la tarjeta.
substringopcional
Subtítulo de la tarjeta.
tonestring (amber | blue | rose | zinc)opcional
Tono visual de esta tarjeta.
filterstring (issues | duplicates | under80 | unverified | notconnected)opcional
Clave de filtro correspondiente en la tabla de ubicaciones.
headlinestringopcional
Un titular determinista de una línea sobre el estado del alcance.
fixFirstarray of objectopcional
Correcciones priorizadas.
textstringopcional
Descripción de la corrección.
impactstring (High | Med | Low)opcional
Impacto estimado de esta corrección.
filterstring (issues | duplicates | under80 | unverified | notconnected)opcional
Clave de filtro correspondiente en la tabla de ubicaciones.
totalnumberopcional
Total de ubicaciones coincidentes (para paginación), independiente de perPage.
pagenumberopcional
Página actual (base 1).
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/summary
Su clave de API
clientId
tags
page
perPage
{
  "data": {
    "summary": {
      "locations": 12,
      "publishersTotal": 96,
      "publishersSynced": 81,
      "connectionIssues": 3,
      "duplicates": 2,
      "reviews": 340,
      "avgRating": 4.6
    },
    "rows": [
      {
        "locationId": "loc_456",
        "name": "Acme Dental — Downtown",
        "city": "Austin",
        "publishers": 8,
        "synced": 7,
        "connectionIssues": 0,
        "duplicates": 0,
        "reviews": 26,
        "unreplied": 2,
        "avgRating": 4.8,
        "googleVerified": true,
        "googleConnected": true,
        "facebookConnected": true,
        "tags": [
          "vip"
        ]
      }
    ],
    "insights": {
      "health": 84,
      "distribution": {
        "fullySynced": 9,
        "healthy": 2,
        "atRisk": 1
      },
      "weakest": [
        {
          "locationId": "loc_789",
          "name": "Acme Dental — Eastside",
          "health": 40
        }
      ],
      "directories": [
        {
          "id": "google",
          "name": "Google Maps",
          "total": 12,
          "synced": 11,
          "requiresAction": 0,
          "notConnected": 1,
          "pct": 92
        }
      ],
      "attention": [
        {
          "n": 1,
          "title": "1 location under 90% synced",
          "sub": "Listings not fully propagated",
          "tone": "amber",
          "filter": "under80"
        }
      ],
      "headline": "84% listing health — 1 location under 90% synced needs attention.",
      "fixFirst": [
        {
          "text": "Reconnect 1 location's listing sync.",
          "impact": "Med"
        }
      ]
    },
    "total": 12,
    "page": 1,
    "perPage": 50
  }
}
v1Recursos/Listados publicados/getObtener Share of Voice

Su cuota de Grid Rank frente a competidores designados, sus palabras clave con mejor rendimiento clasificadas por cuota top-3 actual, y una tendencia mensual de posición promedio en la ventana — para una ubicación.

Obtener Share of Voice

get/api/v1/seo/share-of-voice
seo:read
Parámetros de consulta
locationIdstringobligatorio
La ubicación a consultar. Búsquelo con GET /api/v1/locations.
clientIdstringopcional
El cliente de la ubicación. Solo necesario para desambiguar cuando su clave está limitada a clientes específicos.
fromstringopcional
Inicio de la ventana (fecha ISO). Por defecto, hace 30 días.
tostringopcional
Fin de la ventana (fecha ISO). Por defecto, ahora.
Respuesta
dataobjectopcional
comparisonobjectopcional
Usted frente a competidores designados por cuota top-3 de grid.
availablebooleanopcional
Si esta ubicación tiene datos de grid-rank para calcular el Share of Voice.
rowsarray of objectopcional
Una fila por cada negocio en la comparación — usted y sus competidores nombrados.
namestringopcional
El nombre del negocio, o el nombre de su propio cliente en su propia fila.
top3Pctnumberopcional
Porcentaje de palabras clave rastreadas en las que este negocio se posiciona entre los 3 primeros (0–100), o null si no hay datos suficientes.
isYoubooleanopcional
True en la fila de su propia ubicación. Se omite (nunca false) en las filas de la competencia.
keywordsobjectopcional
Las palabras clave de esta ubicación, clasificadas por cuota top-3 más reciente.
availablebooleanopcional
Si esta ubicación tiene datos de grid-rank para calcular el Share of Voice.
rowsarray of objectopcional
Una fila por cada palabra clave rastreada.
keywordstringopcional
La palabra clave rastreada.
top3Pctnumberopcional
Porcentaje de palabras clave rastreadas en las que este negocio se posiciona entre los 3 primeros (0–100), o null si no hay datos suficientes.
avgRanknumberopcional
Posición promedio durante la ventana, o null si no hay datos suficientes.
performanceobjectopcional
Tendencia mensual de posición promedio por palabra clave, acotada por from/to.
availablebooleanopcional
Si esta ubicación tiene datos de grid-rank para calcular el Share of Voice.
seriesarray of objectopcional
Una serie por cada palabra clave rastreada.
keywordstringopcional
La palabra clave rastreada.
pointsarray of objectopcional
Puntos de datos de posición promedio mensual para esta palabra clave.
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.
get/api/v1/seo/share-of-voice
Su clave de API
locationId *
clientId
from
to
{
  "data": {
    "comparison": {
      "available": true,
      "rows": [
        {
          "name": "Acme Dental — Downtown",
          "top3Pct": 62,
          "isYou": true
        },
        {
          "name": "Bright Smiles Dental",
          "top3Pct": 74
        }
      ]
    },
    "keywords": {
      "available": true,
      "rows": [
        {
          "keyword": "dentist near me",
          "top3Pct": 62,
          "avgRank": 3.2
        }
      ]
    },
    "performance": {
      "available": true,
      "series": [
        {
          "keyword": "dentist near me",
          "points": [
            {
              "yearMonth": "2026-01",
              "avgRank": 3.6
            },
            {
              "yearMonth": "2026-02",
              "avgRank": 3.2
            }
          ]
        }
      ]
    }
  }
}
v1Recursos/Listados publicados/getObtener Índice de Citaciones

Cuántos directorios indexan esta ubicación, actual frente a un período anterior.

Obtener Índice de Citaciones

get/api/v1/seo/citation-index
seo:read
Parámetros de consulta
locationIdstringobligatorio
La ubicación a consultar. Búsquelo con GET /api/v1/locations.
clientIdstringopcional
El cliente de la ubicación. Solo necesario para desambiguar cuando su clave está limitada a clientes específicos.
fromstringopcional
Inicio de la ventana (fecha ISO). Por defecto, hace 30 días.
tostringopcional
Fin de la ventana (fecha ISO). Por defecto, ahora.
Respuesta
dataobjectopcional
availablebooleanopcional
Si ya existe una instantánea del índice de citaciones para esta ubicación.
currentobjectopcional
La instantánea más reciente en o antes del fin de la ventana.
percentagenumberopcional
Porcentaje de listados actualmente indexados (0–100), o null.
listingsnumberopcional
Total de listados activos contados en esta instantánea, o null.
indexednumberopcional
De esos, cuántos están indexados, o null.
previousobjectopcional
La instantánea más reciente en o antes del inicio de la ventana, para comparación.
percentagenumberopcional
Porcentaje de listados actualmente indexados (0–100), o null.
listingsnumberopcional
Total de listados activos contados en esta instantánea, o null.
indexednumberopcional
De esos, cuántos están indexados, o null.
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.
get/api/v1/seo/citation-index
Su clave de API
locationId *
clientId
from
to
{
  "data": {
    "available": true,
    "current": {
      "percentage": 90.48,
      "listings": 42,
      "indexed": 38
    },
    "previous": {
      "percentage": 83.33,
      "listings": 42,
      "indexed": 35
    }
  }
}