---
title: "Per-site breakdown of interactions stats for a single location."
method: GET
path: "/api/v4/locations/{locationId}/review-analytics-sites-stats"
tags: ["Reviews"]
---

# Per-site breakdown of interactions stats for a single location.

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

## Request

- Base URL: `https://listingsapi.com`
- URL: `https://listingsapi.com/api/v4/locations/{locationId}/review-analytics-sites-stats`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-RapidAPI-Key` and API key in header `X-RapidAPI-Host`
- TypeScript: <https://skmtc.dev/listingsapi/apis/listings-api/docs/api/v4/locations/:locationId/review-analytics-sites-stats/get.ts> (a function with typed inputs; its response is checked against the schema)

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

## Path parameters

- `locationId` union, required
  - integer: Raw numeric ID
  - string, base64-or-int: Base64-encoded Relay ID

## Query parameters

- `startDate` string, date
- `endDate` string, date

## Response `200`

Successful response

- object
  - `data` object, required
    - `interactionsSitesStats` InteractionsSitesStats
      - `stats` SiteStat[]
        - `key` string
        - `siteUrl` string
        - `averageRating` DeltaStat
          - `value` number, float
          - `delta` number, float
        - `totalInteractions` DeltaStat
          - `value` number, float
          - `delta` number, float
        - `newInteractions` DeltaStat
          - `value` number, float
          - `delta` number, float
        - `baseRating` number, float
        - `baseInteractions` integer
        - `recency` string
        - `humanizedRecency` string
  - `errors` ApiError[]: Present when the operation reported a request-level failure. Writes can also report validation nested under `data.<field>.errors` on a 200.
    - `message` string, required: Human-readable reason, prefixed with the `SYxxxxx` code where one applies.
    - `code` string: The `SYxxxxx` error code on its own, when one applies.
    - `contextInfo` object[]: Key/value pairs naming the field or value that failed.
      - `key` string
      - `value` string

## Other responses

- `400`: Bad request: a malformed filter, an invalid enum value, or a malformed ID. The body carries an `errors` array, or a single `error` object when the request was rejected before it ran (e.g. `SY90001` on `reviewDetails` with no `interactionIds`).
- `401`: Unauthorized — the API key is missing, malformed, or revoked (`SY90005`).
- `403`: Forbidden — the key is valid but not permitted for this resource or operation (`SY90003`).
- `429`: Rate limit exceeded. Wait `retry_after_seconds` (or the `Retry-After` header) and retry with backoff.
- `500`: Server error. The body carries a single `error` object with code `INTERNAL_SERVER_ERROR`.

## Changes

- **2026-09-25** `91249a5e08be`: 1 breaking, 1 info
  - added `#/components/schemas/ApiErrorObject` to the response body `oneOf` list for the response status `400`
  - removed `#/components/schemas/GatewayError` from the response body `oneOf` list for the response status `400`
- **2026-09-09** `8bc826bc148c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/listingsapi/apis/listings-api/changes/api/v4/locations/:locationId/review-analytics-sites-stats/get.md)

---

[API](https://skmtc.dev/listingsapi/apis/listings-api.md) - [All operations](https://skmtc.dev/listingsapi/apis/listings-api/llms.txt) - [OpenAPI document](https://skmtc.dev/listingsapi/apis/listings-api/revisions/2658a20b9b66?raw)
