GET/api/v4/rollup_interactions

Toplu etkileşimleri alın

Hesaptaki birden çok konumun etkileşimlerini filtreleme ve sıralama desteğiyle, imleç tabanlı sayfalanmış bir liste olarak döndürür.

API anahtarı gerektirir. Başlık biçimi ve anahtar yenileme için Kimlik doğrulama bölümüne bakın.

Parametreler

Sorgu

AdTürZorunluAçıklamaVarsayılan
tagstringisteğe bağlıLocation tag to scope the rollup to. Defaults to `all`, every location the key can see. Omit it unless you tag locations.all
siteUrlsstringisteğe bağlıJSON-encoded array of publisher hostnames to include.—
startDatestringisteğe bağlıStart of the date-range filter (YYYY-MM-DD).—
endDatestringisteğe bağlıEnd of the date-range filter (YYYY-MM-DD).—
searchStringstringisteğe bağlıFull-text search across interaction content.—
categorystringisteğe bağlıSingle interaction category, e.g. `REVIEW`.—
categoriesstringisteğe bağlıJSON-encoded array of interaction categories.—
ratingFiltersstringisteğe bağlıJSON-encoded array of star ratings to include, e.g. `[3,4]`.—
ratingFilterintegeristeğe bağlıSingle star rating to filter by.—
responseStatusstringisteğe bağlıJSON-encoded response-status filter. Values: `RESPONDED`, `PENDING`.—
sortOrderstringisteğe bağlıJSON-encoded sort order. Values: `NEWEST_FIRST`, `OLDEST_FIRST`, `LAST_RESPONDED`.—
firstintegeristeğe bağlıNumber of records to return from the beginning. Defaults to 20 when omitted, the endpoint always returns a single page, never the whole history.—
afterstringisteğe bağlıCursor to page forward from. Pass `pageInfo.endCursor`, or equivalently the `cursor` of the last edge in the previous page.—
lastintegeristeğe bağlıNumber of records to return from the end.—
beforestringisteğe bağlı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.—

Yanıtlar

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.

Hesabın konumlar arası etkileşim görünümünü döndürür. Konum bazında çalışan Etkileşimleri listeleyin uç noktasıyla aynı imleç tabanlı sayfalamayı (first, last, after, before) ve filtreleri destekler. Bağlantı data.rollupInteractions konumundadır ve her node bir locationId içerir; böylece bir etkileşimin hangi mağazaya ait olduğunu belirleyebilirsiniz.

totalCount, bu sayfada döndürülen etkileşimlerin sayısı değil, kapsamdaki tüm konumlarda filtrelerinizle eşleşen etkileşimlerin sayısıdır. first belirtilmediğinde 20 kayıt döndürülür, bu nedenle tek bir çağrı hiçbir zaman hesabın tüm geçmişini kapsamaz; totalCount kayda ulaşana kadar after ile sayfalar arasında ilerleyin.

Dikkat: toplu sonuçlar her zaman hesabın tamamını kapsar

Bu uç noktanın konum bazında bir parametresi yoktur: varsayılan tag=all ile API anahtarının görebildiği tüm konumların verilerini bir araya getirir ve kapsam yalnızca bir konum tag ile daraltılabilir. locationFilters veya locationIds argümanı yoktur ve bunlardan biri gönderilirse reddedilmez, yok sayılır. Sonuç kümesini mevcut filtrelerle (siteUrls, responseStatus, sortOrder, startDate/endDate, searchString) daraltın veya sonuçları her node'un locationId değerine göre kendiniz gruplandırın.

Kullanım örneği: hesap genelinde bir "yanıt bekleyenler" kuyruğu

Tüm konumlarda hâlâ işletme sahibinin yanıtını bekleyen tüm yorumları listelemek için GET /rollup_interactions?responseStatus=["PENDING"]&sortOrder=["NEWEST_FIRST"]&first=50 çağrısını yapın, ardından after = pageInfo.endCursor (eşdeğer olarak, son edge'in cursor değeri) ile sayfalar arasında ilerleyin ve hasNextPage değeri false olduğunda veya bir sayfa boş bir edges dizisi döndürdüğünde durun. Bu, konumları tek tek dolaşma gereğini ortadan kaldırır. Sonuçlar sayfalandığı ve istek hızı sınırlandığı için 429 yanıtında Retry-After üstbilgisine uyun ve zamanlanmış senkronizasyonlarda tarih aralığıyla sınırlı çalıştırmaları (startDate/endDate) tercih edin.

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