/api/v4/rollup_interactionsRécupérer les interactions agrégées
Renvoie une liste d’interactions couvrant de nombreux établissements du compte, paginée par curseur, avec filtrage et tri.
Paramètres
Chaîne de requête
| Nom | Type | Obligatoire | Description | Par défaut |
|---|---|---|---|---|
| tag | string | facultatif | Location tag to scope the rollup to. Defaults to `all`, every location the key can see. Omit it unless you tag locations. | all |
| siteUrls | string | facultatif | JSON-encoded array of publisher hostnames to include. | — |
| startDate | string | facultatif | Start of the date-range filter (YYYY-MM-DD). | — |
| endDate | string | facultatif | End of the date-range filter (YYYY-MM-DD). | — |
| searchString | string | facultatif | Full-text search across interaction content. | — |
| category | string | facultatif | Single interaction category, e.g. `REVIEW`. | — |
| categories | string | facultatif | JSON-encoded array of interaction categories. | — |
| ratingFilters | string | facultatif | JSON-encoded array of star ratings to include, e.g. `[3,4]`. | — |
| ratingFilter | integer | facultatif | Single star rating to filter by. | — |
| responseStatus | string | facultatif | JSON-encoded response-status filter. Values: `RESPONDED`, `PENDING`. | — |
| sortOrder | string | facultatif | JSON-encoded sort order. Values: `NEWEST_FIRST`, `OLDEST_FIRST`, `LAST_RESPONDED`. | — |
| first | integer | facultatif | Number of records to return from the beginning. Defaults to 20 when omitted, the endpoint always returns a single page, never the whole history. | — |
| after | string | facultatif | Cursor to page forward from. Pass `pageInfo.endCursor`, or equivalently the `cursor` of the last edge in the previous page. | — |
| last | integer | facultatif | Number of records to return from the end. | — |
| before | string | facultatif | Cursor to page backward from, used with `last`. Pass the `cursor` of the first edge of the page you are moving back from. `pageInfo` carries no `startCursor` field, so the edge cursor is the value to use. | — |
Réponses
200Paginated rollup of interactions across the account. `data.rollupInteractions` holds the connection.
{ "data": { "rollupInteractions": { "pageInfo": { "hasNextPage": true, "hasPreviousPage": false }, "edges": [ { "node": { "id": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841", "source": "maps.google.com", "content": "Excellent service, highly recommend.", "authorName": "Priya S.", "rating": 5, "date": "2026-06-30T12:04:11+00:00", "category": "Review", "type": "Review", "responded": false, "responseCount": 0, "canRespond": true, "locationId": 1800289 }, "cursor": "SW50ZXJhY3Rpb246OWUyNmQyYTg=" } ], "totalCount": 1284 } }}401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.
Renvoie une vue des interactions couvrant plusieurs établissements du compte. Cet endpoint prend en charge la même pagination par curseur (first, last, after, before) et les mêmes filtres que l’endpoint par établissement Lister les interactions. La connexion se trouve à data.rollupInteractions et chaque node contient un locationId pour vous permettre d’attribuer une interaction à son établissement.
totalCount correspond au nombre d’interactions qui correspondent à vos filtres dans tous les établissements du périmètre, et non au nombre renvoyé sur cette page. Si vous omettez first, 20 enregistrements sont renvoyés ; un seul appel ne fournit donc jamais l’historique complet du compte : parcourez les pages avec after jusqu’à obtenir totalCount enregistrements.
Point d’attention : l’agrégation couvre toujours l’ensemble du compte
Cet endpoint ne possède aucun paramètre permettant de cibler un établissement : avec tag=all par défaut, il agrège tous les établissements auxquels la clé API donne accès, et le seul périmètre plus restreint est un tag d’établissement. Il n’existe aucun argument locationFilters ou locationIds, et si vous en envoyez un, il est ignoré plutôt que rejeté. Réduisez l’ensemble des résultats à l’aide des filtres disponibles (siteUrls, responseStatus, sortOrder, startDate/endDate, searchString), ou regroupez vous-même les résultats selon le locationId de chaque nœud.
Cas d’utilisation : une file d’attente « réponse requise » à l’échelle du compte
Pour lister tous les avis qui attendent encore une réponse du propriétaire dans l’ensemble des établissements, appelez GET /rollup_interactions?responseStatus=["PENDING"]&sortOrder=["NEWEST_FIRST"]&first=50, puis parcourez les pages avec after = pageInfo.endCursor (ou, de manière équivalente, le cursor du dernier élément edge), en vous arrêtant lorsque hasNextPage vaut false ou qu’une page renvoie un tableau edges vide. Cela évite de parcourir les établissements un par un. Comme cet endpoint est paginé et soumis à une limite de débit, respectez l’en-tête Retry-After lorsque vous recevez un 429 et privilégiez les exécutions limitées à une plage de dates (startDate/endDate) pour les synchronisations planifiées.
curl -X GET 'https://listingsapi.com/api/v4/rollup_interactions' \ -H "Authorization: API $LISTINGSAPI_KEY"