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

Interaktionen für einen Standort auflisten

Gibt eine nach Cursor paginierte Liste von Bewertungen und sozialen Interaktionen für einen einzelnen Standort mit Filtern zurück.

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

Parameter

Pfad

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

Query

NameTypErforderlichBeschreibungStandard
siteUrlsstringoptionalJSON-encoded array of publisher hostnames to include, e.g. `["maps.google.com","yelp.com"]`.—
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 (newest first). 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 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.

Gibt Bewertungen und soziale Interaktionen für einen Standort mit cursorbasierter Paginierung zurück. Die Ergebnisse werden standardmäßig mit den neuesten zuerst ausgegeben. Die Verbindung befindet sich unter data.interactions und enthält edges[].node (siehe die Referenz der Interaktionsattribute), ein endCursor in pageInfo und ein totalCount.

totalCount ist die Anzahl der Interaktionen, die Ihren Filtern im gesamten Ergebnissatz entsprechen, nicht die Anzahl der auf dieser Seite zurückgegebenen Interaktionen. Verwenden Sie diesen Wert, um den Umfang eines nachträglichen Datenabrufs abzuschätzen oder Ihre eigene Zählung zu überprüfen: Ein Standort mit totalCount: 450, der mit first=50 ausgelesen wird, erfordert 9 Anfragen, und die Anzahlen sollten sich auf 450 summieren, wenn Sie das Ende erreichen. Wenn Sie first weglassen, werden 20 Datensätze zurückgegeben, sodass ein einzelner Aufruf niemals den vollständigen Verlauf liefert.

Anwendungsfall: ein Bewertungsposteingang pro Filiale

Um einen Bewertungsposteingang für einen Standort zu erstellen, blättern Sie mit first und after vorwärts: Fordern Sie first=25 an und übergeben Sie dann pageInfo.endCursor aus der Antwort beim nächsten Aufruf als after. Jede edge enthält außerdem einen eigenen Wert für cursor, und cursor der letzten edge entspricht endCursor dieser Seite, sodass beide Werte als after verwendet werden können. Beenden Sie den Abruf, wenn hasNextPage den Wert false hat oder wenn eine Seite mit einem leeren edges-Array zurückgegeben wird; prüfen Sie beide Bedingungen, da auf eine Seitengrenze, die genau auf die älteste Bewertung fällt, eine letzte leere Seite folgt. Ergänzen Sie responseStatus=["PENDING"], um nur Bewertungen anzuzeigen, die noch auf eine Antwort des Inhabers warten, oder ratingFilters=[1,2], um negative Bewertungen zuerst zu bearbeiten. Aus jedem node übergeben Sie id an Auf eine Interaktion antworten, und canRespond gibt an, ob diese Quelle Antworten des Inhabers akzeptiert.

Anwendungsfall: inkrementelle Synchronisierung

Um eine lokale Kopie synchron zu halten, filtern Sie nach startDate/endDate, sortieren Sie mit sortOrder=["NEWEST_FIRST"] und speichern Sie den höchsten bisher abgerufenen Wert von date dauerhaft. Beachten Sie, dass dieser Endpunkt paginiert ist und einer Ratenbegrenzung unterliegt; berücksichtigen Sie bei einem 429 den Header Retry-After und vermeiden Sie es, bei jedem Durchlauf den vollständigen Verlauf erneut abzurufen.

Google Maps und Facebook sind in allen Tarifen verfügbar. Yelp ist in den Tarifen Growth und Enterprise verfügbar. JSON-kodierte Filter (siteUrls, categories, ratingFilters, responseStatus, sortOrder) werden als URL-kodierte JSON-Zeichenfolgen übergeben.

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