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

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://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/dashboard group (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_location users 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 (string Y-m-d, optional) — both range params must be present for the date filter AND the comparison block to apply.
  • Query: range_end (string Y-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; contains previous_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

{
  "data": {
    "positive_count": 892,
    "neutral_count": 178,
    "negative_count": 78,
    "comparison": null
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
422The request failed validation — the response names the fields
500Unexpected 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'

Did this page help you?