Get review-site distribution

Overview

Review-site distribution for the account dashboard: review counts and average ratings per platform. When no review_site_id filter is applied and there are more than 5 platforms, the top 4 are returned plus a rolled-up "Others" row (weighted-average rating). For hipages platforms, ratings and counts span all connected sites.

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/get-review-site-distribution

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 company tree.

  • store_id (if given) is validated by an ownership check; otherwise all of the caller's stores are used.

Rate limit

  • No rate limit.

Query parameters

  • Query: store_id (integer, optional) — must belong to the caller's company; omit it to cover all of your locations.
  • Query: review_site_id (integer, optional) — filter to one platform; must be an existing review site. When set, the top-5/Others rollup is disabled.
  • Query: range_start (string Y-m-d, optional) — both range params must be present for the date filter to apply.
  • Query: range_end (string Y-m-d, optional) — must be ≥ range_start.

Response

  • name (string) — review site name (e.g. maps.google, Facebook, or Others).
  • total_reviews (integer) — review count for the platform (for hipages, unified across all connected sites).
  • avg_rating (number) — average rating to 2 decimals (for hipages, spanning all connected sites).
  • logo (string) — S3 URL of the platform logo image.

200 Success · 200

{
  "data": [
    {
      "name": "hipages",
      "total_reviews": 532,
      "avg_rating": 4.31,
      "logo": "https://cdn.example.com/logos/hipages.png"
    },
    {
      "name": "Google",
      "total_reviews": 318,
      "avg_rating": 4.52,
      "logo": "https://cdn.example.com/logos/google.png"
    },
    {
      "name": "Others",
      "total_reviews": 214,
      "avg_rating": 4.08,
      "logo": "https://cdn.example.com/logos/others.png"
    }
  ]
}

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/get-review-site-distribution?store_id=123&review_site_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?