v1Recursos/Media/getLista las fotos de Google almacenadas
Lista las fotos de Google almacenadas
Devuelve las fotos de Google almacenadas en todas las ubicaciones a las que la clave tiene acceso. Filtra por locationId, clientId o kind y pagina con nextCursor. Solo lee lo almacenado: nunca llama a Google ni inicia una sincronización. Aquí location de primer nivel es null solo si no se envía locationId; con locationId trae la cobertura de esa ubicación aunque items esté vacío. cada elemento trae su propia ubicación y actualización. La biblioteca multimedia propia de Synup por categoría es otra lectura: GET /api/v1/media?locationId.
get
media:read/api/v1/media/googleParámetros de consulta
locationIdstringopcional
Solo fotos de esta ubicación. Acepta el id público loc_, el id nativo o un id heredado. Debe pertenecer a clientId si envías ambos.
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/media/google
Su clave de API
locationId
clientId
kind
limit
cursor
{
"data": {
"items": [
{
"id": "4c7a1e90-2b6d-4d8f-9e35-71f0a8c2d413",
"associationKey": "4c7a1e90-2b6d-4d8f-9e35-71f0a8c2d413:loc_789",
"externalId": "accounts/102938475610293847561/locations/7788990011223344556/media/AF1QipOwnerSign03",
"url": "https://lh3.googleusercontent.com/p/AF1QipOwnerSign03",
"category": "EXTERIOR",
"format": "PHOTO",
"kind": "owner",
"lastSeenAt": "2026-10-12T04:01:58.000Z",
"presence": "seen_in_last_complete_scan",
"moderation": {
"status": null
},
"location": {
"id": "loc_789",
"name": "Acme Dental — Uptown",
"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": null,
"limit": 50,
"nextCursor": null
}
}