/api/v4/locations/{locationId}/reviewsInteraktionen 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.
Parameter
Pfad
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| locationId | string | erforderlich | Location ID, a raw numeric database ID (e.g. `1800289`) or its Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`). |
Query
| Name | Typ | Erforderlich | Beschreibung | Standard |
|---|---|---|---|---|
| siteUrls | string | optional | JSON-encoded array of publisher hostnames to include, e.g. `["maps.google.com","yelp.com"]`. | — |
| startDate | string | optional | Start of the date-range filter (YYYY-MM-DD). | — |
| endDate | string | optional | End of the date-range filter (YYYY-MM-DD). | — |
| searchString | string | optional | Full-text search across interaction content. | — |
| category | string | optional | Single interaction category, e.g. `REVIEW`. | — |
| categories | string | optional | JSON-encoded array of interaction categories. | — |
| ratingFilters | string | optional | JSON-encoded array of star ratings to include, e.g. `[3,4]`. | — |
| ratingFilter | integer | optional | Single star rating to filter by. | — |
| responseStatus | string | optional | JSON-encoded response-status filter. Values: `RESPONDED`, `PENDING`. | — |
| sortOrder | string | optional | JSON-encoded sort order. Values: `NEWEST_FIRST`, `OLDEST_FIRST`, `LAST_RESPONDED`. | — |
| first | integer | optional | Number 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. | — |
| after | string | optional | Cursor to page forward from. Pass `pageInfo.endCursor`, or equivalently the `cursor` of the last edge in the previous page. | — |
| last | integer | optional | Number of records to return from the end. | — |
| before | string | optional | 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. | — |
Antworten
200Paginated interactions result. `data.interactions` holds the connection.
{ "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.
curl -X GET 'https://listingsapi.com/api/v4/locations/<locationId>/reviews' \ -H "Authorization: API $LISTINGSAPI_KEY"