Top-row KPI tiles for the account dashboard: total reviews, average rating (bridge-aware), campaign request count, response-rate %, average response time (days), and reviews awaiting a response. When both range_start and range_end are supplied it also returns a comparison block of period-over-period trends against the immediately-preceding window of equal length. Otherwise comparison is null and tiles are all-time.
Auth: Account — authentication, under the account/dashboard group (role-agnostic). Scope is the caller's company tree: store_id (if given) validated by an ownership check; otherwise all of the caller's stores.
Rate limit: No rate limit.
Request
- 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. - Query:
range_start(stringY-m-d, optional) — start of window. - Query:
range_end(stringY-m-d, optional) — must be ≥range_start.awaiting_responseandcomparisonare only populated when BOTH range params are supplied.
Response — { data: {.} } envelope.
reviews_count(integer) — qualifying reviews in window.avg_rating(float) — bridge-aware average rating.request_count(integer) — sent email + SMS campaign requests.response_rate_pct(float) — responses / reviews × 100.avg_response_time(float) — average response time in days.awaiting_response(integer) — point-in-time backlog of reviews awaiting a response (0 unless a range is supplied).comparison(object|null) — null unless both range params given. Containsprevious_period({ range_start, range_end }) plus a comparison cell per windowed metric (reviews_count,avg_rating,request_count,response_rate_pct,avg_response_time). Each cell ={ current, previous, change_pct (float|null — null when previous is 0), direction ("up"|"down"|"flat") }.
Errors: 422 on validation failure.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
