Synup
Créer une clé
v1Ressources/Media/getLister les photos Google enregistrées d'un établissement

Lister les photos Google enregistrées d'un établissement

Renvoie les photos du Profil d'établissement Google déjà enregistrées pour un établissement : photos importées par l'entreprise (kind owner) et photos de clients (kind ugc). Lecture des données enregistrées uniquement : la requête n'appelle jamais Google et ne lance aucune synchronisation. La réponse inclut toujours la fraîcheur owner et ugc de l'établissement, même sans élément, car l'absence de photos enregistrées peut signifier qu'il n'y en a pas, qu'une analyse est restée incomplète ou que Google n'a pas répondu. Les photos sont des références vers des URL hébergées par Google, pas des copies.

get/api/v1/locations/{id}/media/google
media:read
Paramètres de requête
idstringobligatoire
L'établissement : son identifiant public loc_, son identifiant natif ou un ancien identifiant.
clientIdstringfacultatif
Uniquement les photos des établissements de ce client. La clé doit avoir accès à ce client.
kindstring (owner | ugc)facultatif
owner pour les photos importées par l'entreprise, ugc pour les photos de clients. Omettez-le pour obtenir les deux.
limitintegerfacultatif
Taille de page, un entier de 1 à 100. 50 par défaut. Toute autre valeur est rejetée, pas ajustée.
cursorstringfacultatif
Le nextCursor de la page précédente. Il ne fonctionne qu'avec les mêmes filtres ; un curseur issu d'une autre requête est rejeté.
Réponse
dataobjectfacultatif
itemsarray of objectfacultatif
Un élément par association photo et établissement, du plus récent au plus ancien. Une photo partagée par plusieurs établissements apparaît une fois pour chaque établissement auquel vous avez accès.
idstringfacultatif
L'identifiant de l'enregistrement de la photo. Il est commun à tous les établissements liés à la photo : identifiez chaque ligne par associationKey.
associationKeystringfacultatif
Unique par photo et établissement : l'identifiant et l'identifiant de l'établissement séparés par deux-points.
externalIdstringfacultatif
Le nom complet de la ressource Google. C'est l'identité de la photo : la même URL avec un autre externalId est une autre photo.
urlstringfacultatif
L'URL hébergée par Google. Une référence vers la photo chez Google, pas une copie conservée par Synup. Une photo envoyée depuis Synup peut garder son URL source jusqu'à la prochaine récupération planifiée.
categorystringfacultatif
La catégorie propre à Google pour la photo, ou null si Google n'en a donné aucune. À ne pas confondre avec kind.
formatstringfacultatif
Le format du média tel qu'enregistré, par exemple PHOTO, ou null.
kindstring (owner | ugc)facultatif
owner pour une photo importée par l'entreprise, ugc pour une photo de client.
lastSeenAtstringfacultatif
Quand une réponse de Google a inclus cette photo pour la dernière fois sur cet établissement, ou null si inconnu. Une photo envoyée après le début d'une analyse compte aussi comme vue.
presencestring (seen_in_last_complete_scan | not_seen_in_last_complete_scan | unknown)facultatif
Si la dernière analyse complète a vu cette photo : seen_in_last_complete_scan, not_seen_in_last_complete_scan, ou unknown s'il n'y a pas encore d'analyse complète. Cela consigne ce qui a été observé et ne signifie jamais que Google l'a supprimée.
moderationobjectfacultatif
État de vérification de la photo.
statusstring (ok | needs_review | spam | skipped)facultatif
ok, needs_review, spam ou skipped ; null si non classée. Les photos marquées spam ou needs_review sont toujours renvoyées, jamais filtrées.
locationobjectfacultatif
L'établissement auquel cette photo est liée.
idstringfacultatif
L'identifiant public de l'établissement.
namestringfacultatif
Le nom de l'établissement, ou null.
clientIdstringfacultatif
Le client propriétaire de l'établissement, ou null si l'établissement n'a pas de client.
freshnessobjectfacultatif
Degré de fraîcheur et de complétude des données enregistrées pour ce type de photo sur cet établissement. Des champs null signifient inconnu ou jamais tenté, jamais complet.
coveragestring (complete | partial | unavailable)facultatif
complete, partial ou unavailable ; null si aucune actualisation n'a été tentée.
outcomestring (complete | incomplete | unavailable | failed | not_connected)facultatif
Résultat de la dernière tentative d'actualisation : complete, incomplete, unavailable, failed ou not_connected.
lastAttemptAtstringfacultatif
Quand la dernière actualisation a été tentée.
lastSuccessAtstringfacultatif
Quand la dernière actualisation terminée complète a eu lieu.
completedScanAtstringfacultatif
Quand la dernière analyse complète a commencé. presence compare lastSeenAt à cet instant.
locationobjectfacultatif
Présent lors de la lecture d'un seul établissement, même si items est vide : l'établissement avec sa fraîcheur owner et ugc. null sur la route de collection sans locationId.
idstringfacultatif
L'identifiant public de l'établissement.
namestringfacultatif
Le nom de l'établissement, ou null.
clientIdstringfacultatif
Le client propriétaire de l'établissement, ou null si l'établissement n'a pas de client.
ownerobjectfacultatif
Degré de fraîcheur et de complétude des données enregistrées pour ce type de photo sur cet établissement. Des champs null signifient inconnu ou jamais tenté, jamais complet.
coveragestring (complete | partial | unavailable)facultatif
complete, partial ou unavailable ; null si aucune actualisation n'a été tentée.
outcomestring (complete | incomplete | unavailable | failed | not_connected)facultatif
Résultat de la dernière tentative d'actualisation : complete, incomplete, unavailable, failed ou not_connected.
lastAttemptAtstringfacultatif
Quand la dernière actualisation a été tentée.
lastSuccessAtstringfacultatif
Quand la dernière actualisation terminée complète a eu lieu.
completedScanAtstringfacultatif
Quand la dernière analyse complète a commencé. presence compare lastSeenAt à cet instant.
ugcobjectfacultatif
Degré de fraîcheur et de complétude des données enregistrées pour ce type de photo sur cet établissement. Des champs null signifient inconnu ou jamais tenté, jamais complet.
coveragestring (complete | partial | unavailable)facultatif
complete, partial ou unavailable ; null si aucune actualisation n'a été tentée.
outcomestring (complete | incomplete | unavailable | failed | not_connected)facultatif
Résultat de la dernière tentative d'actualisation : complete, incomplete, unavailable, failed ou not_connected.
lastAttemptAtstringfacultatif
Quand la dernière actualisation a été tentée.
lastSuccessAtstringfacultatif
Quand la dernière actualisation terminée complète a eu lieu.
completedScanAtstringfacultatif
Quand la dernière analyse complète a commencé. presence compare lastSeenAt à cet instant.
limitintegerfacultatif
La taille de page appliquée.
nextCursorstringfacultatif
À transmettre comme cursor pour obtenir la page suivante. null quand il n'y en a plus.
Erreurs
400limit, kind, un filtre ou le curseur est invalide, un paramètre est répété, ou l'établissement n'appartient pas au clientId envoyé. Le champ code indique la cause.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'est pas autorisée pour ce client ou cet établissement. Un établissement sans client n'est visible que des clés valables pour toute l'agence.
404L'établissement est introuvable dans cette agence.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
get/api/v1/locations/{id}/media/google
Votre clé 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"
  }
}

Guides qui utilisent cet endpoint