/api/v4/locations/{locationId}/reviewsList interactions for a location
Returns a cursor-paginated list of reviews and social interactions for a single location, with filters.
Parameters
Path
| Name | Type | Required | Description |
|---|---|---|---|
| locationId | string | required | Location ID — a raw numeric database ID (e.g. `1800289`) or its Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`). |
Query
| Name | Type | Required | Description | Default |
|---|---|---|---|---|
| tag | string | optional | Filter by a location tag. | — |
| 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). | — |
| after | string | optional | Cursor value — return records after this cursor (forward pagination). | — |
| last | integer | optional | Number of records to return from the end. | — |
| before | string | optional | Cursor 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"