Review-response stats

Overview

Get review and response totals for the authenticated partner. Totals are split across three time windows: the last 30 days, the previous 30 days, and everything before that. Each call also returns a KPI summary — response rate %, average response time, and the awaiting-response count.

Prerequisites

  • A partner bearer token. The API authenticates with OAuth 2.0 Bearer tokens (RS256-signed JWTs). Obtain one via POST /login or the SSO flow, then send it as Authorization: Bearer <bearer-token> — see Authentication for the full token lifecycle.
  • Partner scope. The token must belong to a partner-admin user (bundle_id = 1); account or location tokens are rejected. Results are limited to that partner's active/pending stores, and narrowed to assignBrands if the user has assign_brand set.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

GET /api/v1/partner/stats/review-response

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • Who can call it: Partner tokens.

  • Mounted under the partner/stats group.

  • Scope is the partner, restricted to active/pending stores. If the user has assign_brand set, counts are further narrowed to the company's assignBrands.

  • Review/response date buckets use review_date and response_created respectively.

Rate limit

  • No rate limit.

Request

  • No path, query, or body params (reads the authenticated user only).

Response

  • review_stats.last_30_days (int) — reviews dated within the last 30 days.
  • review_stats.previous_30_days_count (int) — reviews dated in the 30–60 days ago window.
  • review_stats.before_30_days (int) — reviews dated more than 60 days ago.
  • response_stats.last_30_days (int) — responses created within the last 30 days.
  • response_stats.previous_30_days_count (int) — responses created in the 30–60 days ago window.
  • response_stats.before_30_days (int) — responses created more than 60 days ago.
  • kpi_summary.response_rate_pct (number) — response_stats.last_30_days / review_stats.last_30_days * 100, rounded to 2dp (0 if no reviews). In the example: 310 / 324 * 100 = 95.68%.
  • kpi_summary.response_rate_pct_previous (number) — same ratio for the previous 30-day window. In the example: 285 / 298 * 100 = 95.64%.
  • kpi_summary.avg_response_time (number) — average response time in days (avg minutes / 1440, 2dp; 0 if none).
  • kpi_summary.awaiting_response (int) — the awaiting-response count: reviews still awaiting a response within the last-30-days window.

200 Success · 200

{
  "data": {
    "review_stats": {
      "last_30_days": 324,
      "previous_30_days_count": 298,
      "before_30_days": 1820
    },
    "response_stats": {
      "last_30_days": 310,
      "previous_30_days_count": 285,
      "before_30_days": 1750
    },
    "kpi_summary": {
      "response_rate_pct": 95.68,
      "response_rate_pct_previous": 95.64,
      "avg_response_time": 1.42,
      "awaiting_response": 22
    }
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
500Unexpected server error

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/partner/stats/review-response" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?