GET/api/v4/locations/{locationId}/reviews

Daftar interaksi untuk suatu lokasi

Mengembalikan daftar ulasan dan interaksi sosial untuk satu lokasi, dengan paginasi berbasis kursor dan filter.

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

Parameter

Path

NamaTipeWajibDeskripsi
locationIdstringwajibLocation ID, a raw numeric database ID (e.g. `1800289`) or its Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`).

Query

NamaTipeWajibDeskripsiDefault
siteUrlsstringopsionalJSON-encoded array of publisher hostnames to include, e.g. `["maps.google.com","yelp.com"]`.—
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 (newest first). 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 interactions result. `data.interactions` holds the connection.
Response
{  "data": {    "interactions": {      "pageInfo": {        "hasNextPage": true,        "hasPreviousPage": false,        "endCursor": "SW50ZXJhY3Rpb246MV8xNTU0MjQzMDczMDM2LTllMjZkMmE4LWE2ZWQtNDJlYS04NDU0LTQ3ZDFjOTJlYTg0MQ=="      },      "edges": [        {          "node": {            "id": "9e26d2a8-a6ed-42ea-8454-47d1c92ea841",            "source": "maps.google.com",            "content": "nice place for family together",            "authorName": "vaibhav nakate",            "rating": 5,            "date": "2019-04-02T22:11:13.036997+00:00",            "category": "Review",            "type": "Review",            "responded": false,            "responseCount": 0,            "canRespond": true,            "permalink": "https://maps.google.com/maps?cid=..."          },          "cursor": "SW50ZXJhY3Rpb246MV8xNTU0MjQzMDczMDM2LTllMjZkMmE4LWE2ZWQtNDJlYS04NDU0LTQ3ZDFjOTJlYTg0MQ=="        }      ],      "totalCount": 425    }  }}
401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.

Mengembalikan ulasan dan interaksi sosial untuk suatu lokasi menggunakan paginasi berbasis kursor. Secara default, hasil diurutkan dari yang terbaru. Koneksi berada di data.interactions dan berisi edges[].node (lihat referensi atribut interaksi), sebuah endCursor di dalam pageInfo, dan sebuah totalCount.

totalCount adalah jumlah interaksi yang cocok dengan filter Anda di seluruh kumpulan hasil, bukan jumlah yang dikembalikan pada halaman ini. Gunakan nilai ini untuk menentukan ukuran pengisian data historis atau memeriksa hitungan Anda sendiri: lokasi dengan totalCount: 450 yang dibaca pada first=50 memerlukan 9 permintaan, dan jumlahnya harus mencapai 450 saat Anda mencapai akhir. Jika first tidak disertakan, 20 rekaman dikembalikan, sehingga satu panggilan tidak pernah mencakup seluruh riwayat.

Kasus penggunaan: kotak masuk ulasan per toko

Untuk membuat kotak masuk ulasan untuk satu lokasi, telusuri halaman berikutnya dengan first dan after: minta first=25, lalu teruskan pageInfo.endCursor dari respons sebagai after pada panggilan berikutnya. Setiap edge juga memuat cursor tersendiri, dan cursor dari edge terakhir merupakan endCursor halaman tersebut, sehingga salah satu nilai dapat digunakan sebagai after. Berhenti saat hasNextPage bernilai false atau saat sebuah halaman dikembalikan dengan array edges kosong; periksa kedua kondisi tersebut, karena batas halaman yang tepat jatuh pada ulasan terlama akan diikuti oleh satu halaman kosong terakhir. Tambahkan responseStatus=["PENDING"] untuk hanya menampilkan ulasan yang masih menunggu balasan pemilik, atau ratingFilters=[1,2] untuk memprioritaskan penanganan ulasan negatif. Dari setiap node, id adalah nilai yang Anda teruskan ke Tanggapi interaksi, dan canRespond menunjukkan apakah sumber tersebut menerima balasan pemilik.

Kasus penggunaan: sinkronisasi inkremental

Untuk menjaga salinan lokal tetap tersinkronisasi, filter berdasarkan startDate/endDate dan urutkan dengan sortOrder=["NEWEST_FIRST"], sambil menyimpan secara persisten nilai date tertinggi yang telah Anda temukan. Perhatikan bahwa endpoint ini menggunakan paginasi dan memiliki batas laju permintaan; patuhi header Retry-After pada respons 429 dan hindari mengambil ulang seluruh riwayat setiap kali proses dijalankan.

Google Maps dan Facebook tersedia di semua paket. Yelp tersedia di paket Growth dan Enterprise. Filter yang dikodekan dalam JSON (siteUrls, categories, ratingFilters, responseStatus, sortOrder) diteruskan sebagai string JSON yang dikodekan untuk URL.

Request
curl -X GET 'https://listingsapi.com/api/v4/locations/<locationId>/reviews' \  -H "Authorization: API $LISTINGSAPI_KEY"