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
listings:read/api/v1/listingsPará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
listings:read/api/v1/listings/summaryPará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
}
}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
seo:read/api/v1/seo/citation-indexPará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
}
}
}