GET/api/v4/rollup_interactions

Dapatkan rekap interaksi

Mengembalikan daftar interaksi di berbagai lokasi dalam akun dengan paginasi berbasis kursor, pemfilteran, dan pengurutan.

Memerlukan kunci API. Lihat Autentikasi untuk format header dan rotasi kunci.

Parameter

Query

NamaTipeWajibDeskripsiDefault
tagstringopsionalLocation tag to scope the rollup to. Defaults to `all`, every location the key can see. Omit it unless you tag locations.all
siteUrlsstringopsionalJSON-encoded array of publisher hostnames to include.—
startDatestringopsionalStart of the date-range filter (YYYY-MM-DD).—
endDatestringopsionalEnd of the date-range filter (YYYY-MM-DD).—
searchStringstringopsionalFull-text search across interaction content.—
categorystringopsionalSingle interaction category, e.g. `REVIEW`.—
categoriesstringopsionalJSON-encoded array of interaction categories.—
ratingFiltersstringopsionalJSON-encoded array of star ratings to include, e.g. `[3,4]`.—
ratingFilterintegeropsionalSingle star rating to filter by.—
responseStatusstringopsionalJSON-encoded response-status filter. Values: `RESPONDED`, `PENDING`.—
sortOrderstringopsionalJSON-encoded sort order. Values: `NEWEST_FIRST`, `OLDEST_FIRST`, `LAST_RESPONDED`.—
firstintegeropsionalNumber of records to return from the beginning. Defaults to 20 when omitted, the endpoint always returns a single page, never the whole history.—
afterstringopsionalCursor to page forward from. Pass `pageInfo.endCursor`, or equivalently the `cursor` of the last edge in the previous page.—
lastintegeropsionalNumber of records to return from the end.—
beforestringopsionalCursor 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.—

Respons

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.

Mengembalikan tampilan interaksi lintas lokasi dalam akun. Endpoint ini mendukung paginasi berbasis kursor (first, last, after, before) dan filter yang sama dengan endpoint Daftar interaksi per lokasi. Koneksi berada di data.rollupInteractions dan setiap node memuat locationId sehingga Anda dapat mengaitkan interaksi dengan tokonya.

totalCount adalah jumlah interaksi yang cocok dengan filter Anda di seluruh lokasi dalam cakupan, bukan jumlah yang dikembalikan pada halaman ini. Jika first tidak disertakan, 20 rekaman akan dikembalikan, sehingga satu panggilan tidak pernah mencakup seluruh riwayat akun; telusuri halaman menggunakan after hingga Anda memperoleh totalCount rekaman.

Hal yang perlu diperhatikan: rekap selalu mencakup seluruh akun

Endpoint ini tidak memiliki parameter per lokasi: dengan tag=all default, endpoint ini merekap setiap lokasi yang dapat diakses oleh kunci API, dan satu-satunya cakupan yang lebih sempit adalah tag lokasi. Tidak ada argumen locationFilters atau locationIds, dan jika salah satunya dikirim, argumen tersebut akan diabaikan, bukan ditolak. Persempit kumpulan hasil menggunakan filter yang tersedia (siteUrls, responseStatus, sortOrder, startDate/endDate, searchString), atau kelompokkan sendiri hasilnya berdasarkan locationId pada setiap node.

Kasus penggunaan: antrean "perlu balasan" untuk seluruh akun

Untuk mencantumkan setiap ulasan yang masih menunggu tanggapan pemilik di seluruh lokasi, panggil GET /rollup_interactions?responseStatus=["PENDING"]&sortOrder=["NEWEST_FIRST"]&first=50, lalu telusuri halaman dengan after = pageInfo.endCursor (setara dengan cursor dari edge terakhir), dan berhenti ketika hasNextPage bernilai false atau suatu halaman mengembalikan array edges yang kosong. Dengan cara ini, Anda tidak perlu menelusuri lokasi satu per satu. Karena endpoint ini menggunakan paginasi dan memiliki batas laju, patuhi header Retry-After saat menerima 429 dan utamakan eksekusi dengan rentang tanggal terbatas (startDate/endDate) untuk sinkronisasi terjadwal.

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