GET/api/v4/locations/{locationId}/review-analytics-sites-stats

Get review analytics by site

Returns a per-source breakdown of review volume, rating, and recency for one location.

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
startDatestringoptionalStart of the comparison period (`YYYY-MM-DD`). The `delta` fields compare this period against the previous equivalent one.
endDatestringoptionalEnd of the comparison period (`YYYY-MM-DD`).

Responses

200One entry per review source configured for the location. Response key `interactionsSitesStats`.
Response
{  "data": {    "interactionsSitesStats": {      "stats": [        {          "key": "google",          "siteUrl": "maps.google.com",          "averageRating": { "value": 4.6, "delta": 2.2 },          "totalInteractions": { "value": 412, "delta": 6.1 },          "newInteractions": { "value": 24, "delta": 33.3 },          "recency": "2026-09-06T14:12:00Z",          "baseRating": 4.5,          "baseInteractions": 388,          "humanizedRecency": "3 days ago"        },        {          "key": "facebook",          "siteUrl": "facebook.com",          "averageRating": { "value": 4.1, "delta": -1.4 },          "totalInteractions": { "value": 57, "delta": 0 },          "newInteractions": { "value": 0, "delta": -100 },          "recency": null,          "baseRating": 4.16,          "baseInteractions": 57,          "humanizedRecency": null        }      ]    }  }}
401Unauthenticated, missing or invalid API key.
403The key is valid but not permitted to read this location (`SY90003`).

Splits a location's review performance by source, so you can see which platform is driving a change. It is the per-site sibling of Get interaction analytics (overall KPIs) and Get the review analytics timeline (daily series).

Each entry in stats describes one review source:

  • key / siteUrl: the source's short key and its site URL. siteUrl matches siteSettings[].name from List review sources for a location.
  • averageRating, totalInteractions, newInteractions: each an object with a value for the requested period and a delta, the percentage change against the previous equivalent period.
  • baseRating / baseInteractions: the corresponding values at the start of the period, which is what the delta is measured from.
  • recency: timestamp of the most recent review from that source, null when the source has never returned one.
  • humanizedRecency: the same instant rendered for display ("3 days ago").

Use case: finding which platform moved the average

When a location's overall rating drops, this route says where. Read averageRating.delta per source: a single negative outlier alongside flat siblings points at one platform, while a broadly negative set points at the store. newInteractions.value of 0 on a source whose recency is months old usually means the connection has gone stale rather than that customers stopped reviewing, so cross-check with List review sources for a location.

The response example above is constructed from the upstream InteractionsSitesStats / SiteStat / DeltaStat GraphQL types, not captured from a live call.

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