Get a single review with response

Overview

Get a single review together with its current response, review-site/store context, flags, connection state, and response_capabilities for the response composer (forces type=editResponse).

Prerequisites

  • A bearer token. Callable with Partner and Account tokens.

Base URL

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

Endpoint

GET /api/v1/response/get/review

Authentication

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

  • Who can call it: Partner and Account tokens.

  • Flat /response/* route, account-scoped at the controller level.

  • The review_id resolves to its store's company_id. It is validated by an ownership check, then re-checked in-controller.

  • Any user whose company hierarchy contains the review's store passes. A partner-tier user reaches every review under its tree. An account user reaches only its own stores' reviews.

Rate limit

  • No rate limit.

Query parameters

  • Query: review_id (integer, required) — must be a known review and belong to the caller's company hierarchy.

Response

  • data.id (int) — review id.
  • data.source_platform (string) — originating platform; falls back to the normalised review-site slug when null.
  • data.review (object) — id, reviewer, rating, message, review_date (null if zero-date).
  • data.reviewsite (object) — id, name (Maps.GoogleGoogle), link, review_site_logo, review_site_color, auth_type, scraping_enabled (bool), posting_enabled (bool).
  • data.store (object) — id, name (appends - storeid when present), slug, address (composed from company address/city/state).
  • data.store_reviewsite (object) — id, url, landing_page_url, connection_status, is_connected (bool; derived per-site: Google rs=44 via external_token, Facebook rs=3 via external_token+external_id, Caring rs=20 via external_id, else connection_status==connected).
  • data.flag (array|string) — status-badge objects (flag, title, statusColor, icon, optional links) derived from the response status + any review flag. Empty string in standalone mode.
  • data.plan (string) — active plan name or ''.
  • data.review_flag (object|null) — raw flag relation.
  • data.is_flaggable (bool), flag_status (string, 'none' when unflagged), flag_details (object|null: reason, reason_identifier, flag_reason_detail, flag_date).
  • Hipages-only block (present only in hipages context): flagging (window_days, expires_at, reason), is_legacy, is_qualified, is_off_platform, classification_label, job_id, sub_dimensions, is_profanity, badges, has_history, moderation (timestamps).
  • data.response_capabilities (object) — output (e.g. manual bool, reason); universal.
  • data.response (object|null) — id, status, public_contents, private_contents, response_date, deleted; null when no response (or for unverified automated responses).
  • Top-level with extras: checkUnamePass (int 0/1, edit mode), standalone_type, standalone_popup_message.

200 Success — HiPages partner store · 200

{
  "data": {
    "id": 13383822,
    "source_platform": "HiPages",
    "review": {
      "id": 13383822,
      "reviewer": "A Paredes",
      "rating": 5,
      "message": "The team was on time, did a great job.",
      "review_date": "2026-01-05 16:55:13"
    },
    "reviewsite": {
      "id": 100,
      "name": "HiPages",
      "link": "https://www.hipages.com.au",
      "review_site_color": "#FF6B00"
    },
    "response": {
      "id": 1039928,
      "status": "pending",
      "public_contents": "Thank you!"
    },
    "store": {
      "id": 8748,
      "name": "Acme NYC",
      "address": "123 Main St, NYC, NY"
    },
    "flag": [],
    "is_flaggable": true,
    "flag_status": "none",
    "flag_details": null,
    "flagging": {
      "window_days": 90,
      "expires_at": "2026-04-05T00:00:00Z",
      "reason": null
    },
    "is_legacy": false,
    "is_qualified": true,
    "is_off_platform": false,
    "classification_label": null,
    "is_profanity": false,
    "badges": [],
    "has_history": false
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
403The review's store sits outside your account tree (Access denied in errors)
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/response/get/review?review_id=123" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?