v1Recursos/Media/getLista las fotos de Google almacenadas de una ubicación
Lista las fotos de Google almacenadas de una ubicación
Devuelve las fotos del Perfil de Empresa de Google ya almacenadas para una ubicación: fotos subidas por el negocio (kind owner) y fotos aportadas por clientes (kind ugc). Solo lee lo almacenado: la solicitud nunca llama a Google ni inicia una sincronización. La respuesta siempre incluye la actualización de owner y ugc de la ubicación, incluso sin elementos, porque no tener fotos almacenadas puede significar que no existen, que un análisis quedó incompleto o que Google no respondió. Las fotos son referencias a URL alojadas en Google, no copias.
get
media:read/api/v1/locations/{id}/media/googleParámetros de consulta
idstringobligatorio
La ubicación: su id público loc_, su id nativo o un id heredado.
clientIdstringopcional
Solo fotos de ubicaciones de este cliente. La clave debe tener acceso a ese cliente.
kindstring (owner | ugc)opcional
owner para fotos subidas por el negocio, ugc para fotos aportadas por clientes. Omítelo para recibir ambas.
limitintegeropcional
Tamaño de página, un número entero de 1 a 100. Por defecto 50. Cualquier otro valor se rechaza, no se ajusta.
cursorstringopcional
El nextCursor de la página anterior. Solo funciona con los mismos filtros; un cursor de otra solicitud se rechaza.
Respuesta
dataobjectopcional
itemsarray of objectopcional
Un elemento por cada asociación de foto y ubicación, del más reciente al más antiguo. Una foto compartida por varias ubicaciones aparece una vez por cada ubicación a la que tienes acceso.
idstringopcional
El id del registro de la foto almacenada. Lo comparten todas las ubicaciones vinculadas a la foto, así que identifica cada fila con associationKey.
associationKeystringopcional
Único por foto y ubicación: el id y el id de la ubicación unidos por dos puntos.
externalIdstringopcional
El nombre completo del recurso de Google. Es la identidad de la foto: la misma URL con otro externalId es otra foto.
urlstringopcional
La URL alojada en Google. Es una referencia a la foto en Google, no una copia guardada por Synup. Una foto enviada desde Synup puede conservar su URL de origen hasta la próxima descarga programada.
categorystringopcional
La categoría propia de Google para la foto, o null si Google no dio ninguna. No es lo mismo que kind.
formatstringopcional
El formato del archivo tal como se almacenó, por ejemplo PHOTO, o null.
kindstring (owner | ugc)opcional
owner para una foto subida por el negocio, ugc para una aportada por un cliente.
lastSeenAtstringopcional
Cuándo una respuesta de Google incluyó por última vez esta foto en esta ubicación, o null si se desconoce. Una foto enviada después de iniciar un análisis también cuenta como vista.
presencestring (seen_in_last_complete_scan | not_seen_in_last_complete_scan | unknown)opcional
Si el último análisis completo vio esta foto: seen_in_last_complete_scan, not_seen_in_last_complete_scan o unknown si aún no hay un análisis completo. Registra lo observado y nunca significa que Google la eliminó.
moderationobjectopcional
Estado de revisión de la foto.
statusstring (ok | needs_review | spam | skipped)opcional
ok, needs_review, spam o skipped; null si no se clasificó. Las fotos marcadas spam o needs_review se siguen devolviendo, nunca se filtran.
locationobjectopcional
La ubicación a la que está vinculada esta foto.
idstringopcional
El id público de la ubicación.
namestringopcional
El nombre de la ubicación, o null.
clientIdstringopcional
El cliente propietario de la ubicación, o null si la ubicación no tiene cliente.
freshnessobjectopcional
Qué tan reciente y completo está lo almacenado para este tipo de foto en esta ubicación. Los campos null significan desconocido o nunca intentado, nunca completo.
coveragestring (complete | partial | unavailable)opcional
complete, partial o unavailable; null si no se ha intentado ninguna actualización.
outcomestring (complete | incomplete | unavailable | failed | not_connected)opcional
Resultado del último intento de actualización: complete, incomplete, unavailable, failed o not_connected.
lastAttemptAtstringopcional
Cuándo se intentó la última actualización.
lastSuccessAtstringopcional
Cuándo se ejecutó la última actualización que terminó completa.
completedScanAtstringopcional
Cuándo empezó el último análisis completo. presence compara lastSeenAt con ese instante.
locationobjectopcional
Presente al leer una sola ubicación, incluso con items vacío: la ubicación con la actualización de owner y ugc. null en la ruta de colección sin locationId.
idstringopcional
El id público de la ubicación.
namestringopcional
El nombre de la ubicación, o null.
clientIdstringopcional
El cliente propietario de la ubicación, o null si la ubicación no tiene cliente.
ownerobjectopcional
Qué tan reciente y completo está lo almacenado para este tipo de foto en esta ubicación. Los campos null significan desconocido o nunca intentado, nunca completo.
coveragestring (complete | partial | unavailable)opcional
complete, partial o unavailable; null si no se ha intentado ninguna actualización.
outcomestring (complete | incomplete | unavailable | failed | not_connected)opcional
Resultado del último intento de actualización: complete, incomplete, unavailable, failed o not_connected.
lastAttemptAtstringopcional
Cuándo se intentó la última actualización.
lastSuccessAtstringopcional
Cuándo se ejecutó la última actualización que terminó completa.
completedScanAtstringopcional
Cuándo empezó el último análisis completo. presence compara lastSeenAt con ese instante.
ugcobjectopcional
Qué tan reciente y completo está lo almacenado para este tipo de foto en esta ubicación. Los campos null significan desconocido o nunca intentado, nunca completo.
coveragestring (complete | partial | unavailable)opcional
complete, partial o unavailable; null si no se ha intentado ninguna actualización.
outcomestring (complete | incomplete | unavailable | failed | not_connected)opcional
Resultado del último intento de actualización: complete, incomplete, unavailable, failed o not_connected.
lastAttemptAtstringopcional
Cuándo se intentó la última actualización.
lastSuccessAtstringopcional
Cuándo se ejecutó la última actualización que terminó completa.
completedScanAtstringopcional
Cuándo empezó el último análisis completo. presence compara lastSeenAt con ese instante.
limitintegeropcional
El tamaño de página aplicado.
nextCursorstringopcional
Pásalo como cursor para obtener la página siguiente. null cuando no hay más.
Errores
400limit, kind, un filtro o el cursor no es válido, se repitió un parámetro o la ubicación no pertenece al clientId enviado. El campo code indica la causa.
401La clave de API falta, es inválida, expiró o fue revocada.
403La clave no está autorizada para ese cliente o ubicación. Una ubicación sin cliente solo la ven las claves de toda la agencia.
404No se encontró la ubicación en esta agencia.
429Demasiadas solicitudes. Reintente tras el número de segundos indicado en el encabezado Retry-After.
get/api/v1/locations/{id}/media/google
Su clave de API
id *
clientId
kind
limit
cursor
{
"data": {
"items": [
{
"id": "9b2e7c14-5d3a-4f6e-8a21-c0d7f3a1b645",
"associationKey": "9b2e7c14-5d3a-4f6e-8a21-c0d7f3a1b645:loc_456",
"externalId": "accounts/102938475610293847561/locations/5647382910563748291/media/AF1QipOwnerLobby01",
"url": "https://lh3.googleusercontent.com/p/AF1QipOwnerLobby01",
"category": "INTERIOR",
"format": "PHOTO",
"kind": "owner",
"lastSeenAt": "2026-10-12T04:01:58.000Z",
"presence": "seen_in_last_complete_scan",
"moderation": {
"status": null
},
"location": {
"id": "loc_456",
"name": "Acme Dental — Downtown",
"clientId": "cli_123"
},
"freshness": {
"coverage": "complete",
"outcome": "complete",
"lastAttemptAt": "2026-10-12T04:02:11.000Z",
"lastSuccessAt": "2026-10-12T04:02:11.000Z",
"completedScanAt": "2026-10-12T04:01:58.000Z"
}
}
],
"location": {
"id": "loc_456",
"name": "Acme Dental — Downtown",
"clientId": "cli_123",
"owner": {
"coverage": "complete",
"outcome": "complete",
"lastAttemptAt": "2026-10-12T04:02:11.000Z",
"lastSuccessAt": "2026-10-12T04:02:11.000Z",
"completedScanAt": "2026-10-12T04:01:58.000Z"
},
"ugc": {
"coverage": "unavailable",
"outcome": "unavailable",
"lastAttemptAt": "2026-10-12T04:02:12.000Z",
"lastSuccessAt": null,
"completedScanAt": null
}
},
"limit": 1,
"nextCursor": "NEXT_CURSOR_FROM_THIS_RESPONSE"
}
}