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

List interactions for a location

Returns a cursor-paginated list of reviews and social interactions for a single location, with filters.

Requires an API key. See Authentication for header format and key rotation.

Parameters

Path

NameTypeRequiredDescription
locationIdstringrequiredLocation ID — a raw numeric database ID (e.g. `1800289`) or its Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`).

Query

NameTypeRequiredDescriptionDefault
tagstringoptionalFilter by a location tag.
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).
afterstringoptionalCursor value — return records after this cursor (forward pagination).
lastintegeroptionalNumber of records to return from the end.
beforestringoptionalCursor value — return records before this cursor (backward pagination).

Responses

200Paginated interactions result. `data.interactions` holds the connection.
{
  "data": {
    "interactions": {
      "pageInfo": {
        "hasNextPage": true,
        "hasPreviousPage": false,
        "endCursor": "SW50ZXJhY3Rpb246OWUyNmQyYTg="
      },
      "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": "SW50ZXJhY3Rpb246OWUyNmQyYTg="
        }
      ],
      "totalCount": 425
    }
  }
}
401Unauthenticated — missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.

Returns reviews and social interactions for a location using cursor-based pagination. Results default to the most recent first. The connection lives at data.interactions and contains edges[].node (see the interaction attributes reference), an endCursor in pageInfo, and a totalCount.

Use case: a per-store reviews inbox

To build a reviews inbox for one location, page forward with first and after: request first=25, then pass the response's pageInfo.endCursor as after on the next call until hasNextPage is false. Layer on responseStatus=["PENDING"] to show only reviews still awaiting an owner reply, or ratingFilters=[1,2] to triage negative reviews first. From each node, the id is what you pass to Respond to an interaction, and canRespond tells you whether that source accepts owner replies.

Use case: incremental sync

To keep a local mirror in sync, filter by startDate/endDate and sort with sortOrder=["NEWEST_FIRST"], persisting the highest date you have seen. Note this is a paginated, rate-limited endpoint — honor the Retry-After header on a 429 and avoid re-fetching the full history on every run.

Supported publisher sites include Google Maps, Facebook, Yelp, TripAdvisor, Trustpilot, Glassdoor, and OpenTable. JSON-encoded filters (siteUrls, categories, ratingFilters, responseStatus, sortOrder) are passed as URL-encoded JSON strings.

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