/api/v4/rollup_interactionsOttieni le interazioni aggregate
Restituisce un elenco di interazioni su più sedi dell'account, con paginazione basata su cursore, filtri e ordinamento.
Parametri
Query
| Nome | Tipo | Obbligatorio | Descrizione | Predefinito |
|---|---|---|---|---|
| tag | string | facoltativo | 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 | facoltativo | JSON-encoded array of publisher hostnames to include. | — |
| startDate | string | facoltativo | Start of the date-range filter (YYYY-MM-DD). | — |
| endDate | string | facoltativo | End of the date-range filter (YYYY-MM-DD). | — |
| searchString | string | facoltativo | Full-text search across interaction content. | — |
| category | string | facoltativo | Single interaction category, e.g. `REVIEW`. | — |
| categories | string | facoltativo | JSON-encoded array of interaction categories. | — |
| ratingFilters | string | facoltativo | JSON-encoded array of star ratings to include, e.g. `[3,4]`. | — |
| ratingFilter | integer | facoltativo | Single star rating to filter by. | — |
| responseStatus | string | facoltativo | JSON-encoded response-status filter. Values: `RESPONDED`, `PENDING`. | — |
| sortOrder | string | facoltativo | JSON-encoded sort order. Values: `NEWEST_FIRST`, `OLDEST_FIRST`, `LAST_RESPONDED`. | — |
| first | integer | facoltativo | 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 | facoltativo | Cursor to page forward from. Pass `pageInfo.endCursor`, or equivalently the `cursor` of the last edge in the previous page. | — |
| last | integer | facoltativo | Number of records to return from the end. | — |
| before | string | facoltativo | 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. | — |
Risposte
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.
Restituisce una vista delle interazioni tra le sedi dell'account. Supporta la stessa paginazione basata su cursore (first, last, after, before) e gli stessi filtri dell'endpoint per singola sede Elenca le interazioni. La connection si trova in data.rollupInteractions e ogni node contiene un locationId, così puoi attribuire un'interazione al relativo punto vendita.
totalCount è il numero di interazioni che corrispondono ai tuoi filtri in tutte le sedi incluse nell'ambito, non il numero restituito in questa pagina. Se ometti first vengono restituiti 20 record, quindi una singola chiamata non restituisce mai l'intera cronologia dell'account: scorri le pagine con after finché non hai ottenuto totalCount record.
Attenzione: l'aggregazione comprende sempre l'intero account
Questo endpoint non ha un parametro per singola sede: con il valore predefinito di tag=all aggrega tutte le sedi visibili alla chiave API, e l'unico ambito più ristretto è un tag di sedi. Non esiste alcun argomento locationFilters o locationIds e, se ne invii uno, viene ignorato anziché rifiutato. Restringi l'insieme dei risultati con i filtri disponibili (siteUrls, responseStatus, sortOrder, startDate/endDate, searchString), oppure raggruppa tu i risultati in base al valore di locationId di ciascun nodo.
Caso d'uso: una coda di elementi "in attesa di risposta" per l'intero account
Per elencare tutte le recensioni ancora in attesa di una risposta del proprietario in tutte le sedi, chiama GET /rollup_interactions?responseStatus=["PENDING"]&sortOrder=["NEWEST_FIRST"]&first=50, quindi scorri le pagine con after = pageInfo.endCursor (equivalente al valore di cursor dell'ultimo edge), fermandoti quando hasNextPage è false o una pagina restituisce un array edges vuoto. In questo modo eviti di procedere sede per sede. Poiché l'endpoint prevede la paginazione e limiti alla frequenza delle richieste, rispetta l'header Retry-After quando ricevi un 429 e, per le sincronizzazioni pianificate, preferisci esecuzioni limitate a un intervallo di date (startDate/endDate).
curl -X GET 'https://listingsapi.com/api/v4/rollup_interactions' \ -H "Authorization: API $LISTINGSAPI_KEY"