GET/api/v4/rollup_interactions

Aggregierte Interaktionen abrufen

Gibt eine nach Cursorn paginierte Liste von Interaktionen über mehrere Standorte im Konto hinweg zurück, mit Filter- und Sortiermöglichkeiten.

Erfordert einen API-Schlüssel. Format des Headers und Schlüsselrotation finden Sie unter Authentifizierung.

Parameter

Query

NameTypErforderlichBeschreibungStandard
tagstringoptionalLocation tag to scope the rollup to. Defaults to `all`, every location the key can see. Omit it unless you tag locations.all
siteUrlsstringoptionalJSON-encoded array of publisher hostnames to include.—
startDatestringoptionalStart of the date-range filter (YYYY-MM-DD).—
endDatestringoptionalEnd of the date-range filter (YYYY-MM-DD).—
searchStringstringoptionalFull-text search across interaction content.—
categorystringoptionalSingle interaction category, e.g. `REVIEW`.—
categoriesstringoptionalJSON-encoded array of interaction categories.—
ratingFiltersstringoptionalJSON-encoded array of star ratings to include, e.g. `[3,4]`.—
ratingFilterintegeroptionalSingle star rating to filter by.—
responseStatusstringoptionalJSON-encoded response-status filter. Values: `RESPONDED`, `PENDING`.—
sortOrderstringoptionalJSON-encoded sort order. Values: `NEWEST_FIRST`, `OLDEST_FIRST`, `LAST_RESPONDED`.—
firstintegeroptionalNumber of records to return from the beginning. Defaults to 20 when omitted, the endpoint always returns a single page, never the whole history.—
afterstringoptionalCursor to page forward from. Pass `pageInfo.endCursor`, or equivalently the `cursor` of the last edge in the previous page.—
lastintegeroptionalNumber of records to return from the end.—
beforestringoptionalCursor 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.—

Antworten

200Paginated rollup of interactions across the account. `data.rollupInteractions` holds the connection.
Response
{  "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.

Gibt eine standortübergreifende Ansicht der Interaktionen für das Konto zurück. Unterstützt dieselbe cursorbasierte Paginierung (first, last, after, before) und dieselben Filter wie der standortbezogene Endpunkt Interaktionen auflisten. Die Verbindung befindet sich unter data.rollupInteractions, und jedes node enthält ein locationId, sodass Sie eine Interaktion ihrem Standort zuordnen können.

totalCount ist die Anzahl der Interaktionen, die über alle berücksichtigten Standorte hinweg Ihren Filtern entsprechen, nicht die Anzahl der auf dieser Seite zurückgegebenen Interaktionen. Wenn Sie first weglassen, werden 20 Datensätze zurückgegeben, sodass ein einzelner Aufruf niemals den vollständigen Verlauf des Kontos liefert; blättern Sie mit after durch die Seiten, bis Sie totalCount Datensätze erhalten haben.

Achtung: Die Aggregation umfasst immer das gesamte Konto

Dieser Endpunkt hat keinen Parameter für einzelne Standorte: Mit dem Standardwert tag=all aggregiert er alle Standorte, auf die der API-Schlüssel zugreifen kann, und die einzige Möglichkeit zur Eingrenzung ist eine Standort-tag. Es gibt kein Argument locationFilters oder locationIds, und ein solches Argument wird beim Senden ignoriert statt abgelehnt. Grenzen Sie die Ergebnismenge mit den vorhandenen Filtern ein (siteUrls, responseStatus, sortOrder, startDate/endDate, searchString), oder gruppieren Sie die Ergebnisse selbst nach dem locationId jedes Knotens.

Anwendungsfall: eine kontoweite Warteschlange für ausstehende Antworten

Um alle Bewertungen aufzulisten, bei denen über alle Standorte hinweg noch eine Antwort des Inhabers aussteht, rufen Sie GET /rollup_interactions?responseStatus=["PENDING"]&sortOrder=["NEWEST_FIRST"]&first=50 auf und blättern Sie anschließend mit after = pageInfo.endCursor (gleichbedeutend mit dem cursor der letzten Kante) durch die Seiten, bis hasNextPage den Wert false hat oder eine Seite ein leeres edges-Array zurückgibt. Dadurch müssen Sie die Standorte nicht einzeln durchlaufen. Da der Endpunkt paginiert ist und einer Ratenbegrenzung unterliegt, beachten Sie bei einem 429 den Header Retry-After und bevorzugen Sie für geplante Synchronisierungen zeitlich eingegrenzte Durchläufe (startDate/endDate).

Request
curl -X GET 'https://listingsapi.com/api/v4/rollup_interactions' \  -H "Authorization: API $LISTINGSAPI_KEY"