v1Resources/Reviews/getGet review analytics

Get review analytics

KPIs (with period-over-period deltas), a monthly trend (volume, rating, sentiment mix, response rate), rating distribution, per-platform breakdown, day-of-week timing, an agency benchmark, themes, and an AI summary — for one location.

get/api/v1/reviews/analytics
reviews:read
Query parameters
locationIdstringrequired
The location to look up.
clientIdstringrequired
The location's client.
kpiDaysinteger (7 | 30 | 90)optional
KPI window in days: 7, 30, or 90. Defaults to 30.
trendMonthsinteger (3 | 6 | 12)optional
Trend length in months: 3, 6, or 12. Defaults to 6.
Response
dataobjectoptional
The full Review Analytics payload.
Errors
400The request is missing a required parameter or is otherwise malformed.
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
404The resource wasn't found, or doesn't belong to your agency.
429Too many requests. Retry after the number of seconds in the Retry-After header.
get/api/v1/reviews/analytics
Your API key
locationId *
clientId *
kpiDays
trendMonths
{
  "data": {
    "total": 210,
    "kpis": {
      "totalReviews": {
        "value": 210,
        "delta": 14
      },
      "avgRating": {
        "value": 4.4,
        "delta": 0.1
      },
      "responseRate": {
        "value": 91,
        "delta": 3
      },
      "newReviews": {
        "value": 14,
        "delta": 3
      }
    },
    "spark": {
      "counts": [
        1,
        2,
        0,
        3,
        1,
        2
      ],
      "ratings": [
        4,
        5,
        0,
        4,
        5,
        4
      ],
      "response": [
        1,
        2,
        0,
        3,
        1,
        2
      ]
    },
    "trend": {
      "months": [
        "2026-01",
        "2026-02"
      ],
      "count": [
        96,
        114
      ],
      "avgRating": [
        4.3,
        4.4
      ],
      "positive": [
        78,
        92
      ],
      "neutral": [
        12,
        14
      ],
      "negative": [
        6,
        8
      ],
      "responseRate": [
        88,
        91
      ]
    },
    "distribution": [
      4,
      8,
      12,
      60,
      126
    ],
    "byPlatform": [
      {
        "platform": "google",
        "label": "Google",
        "count": 160,
        "avgRating": 4.5
      }
    ],
    "response": {
      "replied": 204,
      "unreplied": 6,
      "unrepliedNegative": 2,
      "rate": 97
    },
    "themes": [
      {
        "keyword": "friendly staff",
        "count": 42,
        "avgRating": 4.8,
        "sentiment": "positive"
      }
    ],
    "timing": [
      10,
      20,
      30,
      40,
      50,
      60,
      0
    ],
    "benchmark": {
      "rating": {
        "location": 4.4,
        "agency": 4.2
      },
      "responseRate": {
        "location": 91,
        "agency": 84
      }
    },
    "recentUnrepliedNegatives": [
      {
        "id": "rev_1",
        "author": "Jane D.",
        "rating": 2,
        "platform": "google",
        "platformLabel": "Google",
        "body": "Long wait time.",
        "date": "2026-02-01T12:00:00.000Z"
      }
    ],
    "aiSummary": "Ratings trended up this month, driven mostly by praise for staff friendliness."
  }
}

Guides that use this endpoint