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
reviews:read/api/v1/reviews/analyticsQuery 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
- How to Build a Reputation Management PlatformArchitecture and API calls for a multi-client reputation management platform on Synup: review ingestion, reply workflows, invites, widgets and reporting.
- How to Build an AI Agent That Responds to ReviewsBuild an AI agent that drafts and posts review replies, with rating-based guardrails, human approval for negatives, and protection against injection.
- How to Fetch and Respond to Reviews via APIFetch reviews from Google, Facebook and custom review sites, filter them, post owner replies, add internal notes and read review analytics with the Synup API.
- How to Build Automated Review-Response WorkflowsBuild a review-response workflow that routes reviews by rating and sentiment, drafts replies, approves them, and pushes them back to the platform.
- How to Retrieve Google Business Profile Analytics via APIPull Google Business Profile analytics through an API, portfolio-wide and per location, with views, calls, direction requests and a maps-versus-search split.