Get sentiment overview
Overview
Sentiment overview for the account dashboard: positive (4–5 star), neutral (3 star), and negative (1–2 star) review counts. Only qualifying, non-hipages-suppressed, rating-eligible reviews are counted. When both range_start and range_end are supplied it also returns a comparison block with per-sentiment period-over-period trends. The comparison runs against the immediately-preceding window of equal length. Otherwise comparison is null.
Prerequisites
- A bearer token. Callable with Account tokens.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/account/dashboard/sentiment-overview
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Account tokens.
-
Mounted under the
account/dashboardgroup (role-agnostic). -
Scope is the caller's own account company (
brand.id = user.person.company.id). -
store_id(if given) is validated by an ownership check and further constrains to that one store. -
assign_locationusers reach only their assigned stores.
Rate limit
- No rate limit.
Query parameters
- Query:
store_id(integer, optional) — must belong to the caller's company; constrains results to that store. - Query:
review_site_id(integer, optional) — filter to one platform; must be an existing review site. - Query:
range_start(stringY-m-d, optional) — both range params must be present for the date filter AND the comparison block to apply. - Query:
range_end(stringY-m-d, optional) — must be ≥range_start. - NOTE: the Postman URL for this endpoint omits
review_site_id; it remains an accepted optional filter.
Response
data.positive_count(integer) — reviews with rate > 3.data.neutral_count(integer) — middle band (effectively 3-star).data.negative_count(integer) — rate 1–2 (Facebook only when rate > 0).data.comparison(object|null) — null unless both range params given; containsprevious_period({ range_start, range_end }) plus a comparison cell per sentiment (positive_count,neutral_count,negative_count). Each cell ={ current, previous, change_pct (float|null — null when previous is 0), direction ("up"|"down"|"flat") }.
200 Success · 200
200{
"data": {
"positive_count": 892,
"neutral_count": 178,
"negative_count": 78,
"comparison": null
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
422 | The request failed validation — the response names the fields |
500 | Unexpected server error |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/account/dashboard/sentiment-overview?store_id=123&range_start=2026-01-01&range_end=2026-01-31" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 10 days ago
