Get one review
Overview
Get a single review by its id, with its response, the location and site it belongs to, flag status, connection state, and what kinds of response are currently allowed.
Use this when you already know the review id, for example to load a review's detail before responding to it.
You'll need the review_id.
Returns the review. Same shape as one entry from Get reviews for a location, with a few extra fields for the response editor.
Prerequisites
- A bearer token. See Authentication.
- The review's id (
review_id), for example theidfrom Get reviews for a location.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/response/get/review
Authentication
Partner or Account token
- The review must be on a location inside your own account tree. A Partner token reaches every review under the partner; an Account token only its own account's reviews.
- A review outside your tree is rejected with
422. A review in your tree on a location that isn't active or pending, or that your user isn't assigned to, gets403.
Rate limit
This endpoint has no rate limit.
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
review_id | query | integer | Yes | The review. Must exist and be inside your account tree. |
Request body
None.
Request payload
None.
Response body
The review is in data; checkUnamePass, standalone_type and standalone_popup_message are next to it.
| Field | Type | Description |
|---|---|---|
data | object | The review, in the same shape as an entry from Get reviews for a location. |
data.id | integer | The review's id (review_id). |
data.source_platform | string | The site the review came from, e.g. google. |
data.review | object | The review. |
data.review.id | integer | The review's id. |
data.review.reviewer | string | The reviewer's name as shown on the site. |
data.review.rating | number | The star rating, e.g. 4. |
data.review.message | string | The review text. "" when the review is a rating only. |
data.review.review_date | string or null | When the review was posted (ISO 8601), or null if unknown. |
data.reviewsite | object | The review site. |
data.reviewsite.id | integer | The review site's id (review_site_id). |
data.reviewsite.name | string | The review site's name, e.g. Google. |
data.reviewsite.link | string | The site's home page. |
data.reviewsite.review_site_logo | string | URL of the site's logo. |
data.reviewsite.review_site_color | string | The site's brand colour, e.g. #4285F4. |
data.reviewsite.auth_type | string or null | How the site connects: oauth, cookie, credential, default, restapi, or null. See List supported review sites. |
data.reviewsite.scraping_enabled | boolean | Whether reviews can be collected from this site. |
data.reviewsite.posting_enabled | boolean | Whether responses can be posted to this site. |
data.store | object | The location. |
data.store.id | integer | The location's id (store_id). |
data.store.name | string | The location's name, followed by - and your client_location_id (or its storeId label) when it has one. |
data.store.slug | string | The location's URL slug. |
data.store.address | string | The location's address: street, city and state. |
data.store_reviewsite | object | The connection between the location and the site. |
data.store_reviewsite.id | integer or null | The connection's id (store_review_site_id). |
data.store_reviewsite.url | string or null | The site's review URL for the location. |
data.store_reviewsite.landing_page_url | string or null | The landing page URL used in review requests. |
data.store_reviewsite.connection_status | string or null | The stored connection state, e.g. connected or Disconnected, or null. |
data.store_reviewsite.is_connected | boolean | Whether the site is connected for this location. |
data.flag | array of objects | Status chips for the response and any removal flag, in display order. Empty when there is nothing to show. |
data.flag[].flag | string | The chip label, e.g. complete or Flagged — Pending Review. |
data.flag[].title | string | What the chip means, in plain language. |
data.flag[].statusColor | string | success, warning or error. |
data.flag[].icon | string | Icon name for the chip. |
data.flag[].links | array of objects | Only on some chips: where to fix the problem. |
data.flag[].links[].name | string | Link label, e.g. Edit Review Site. |
data.flag[].links[].url | string | Link URL in the Shout About Us web app. |
data.plan | string | The plan name recorded with the latest update to the response, or "". |
data.review_flag | object or null | The removal flag on this review, or null. |
data.review_flag.review_id | integer | The review's id. |
data.review_flag.reason | string | Why the review was flagged. |
data.review_flag.flag_status | string | pending, submitted_to_platform, approved_removed or denied. |
data.review_flag.flag_date | string | When it was flagged (ISO 8601). |
data.review_flag.flag_reason_detail | string or null | The extra detail given when flagging, or null. |
data.review_flag.reason_identifier | string or null | The flag reason category, e.g. Low quality information. |
data.is_flaggable | boolean | Whether you can flag this review for removal now. |
data.flag_status | string | none when not flagged, otherwise pending, submitted_to_platform, approved_removed or denied. |
data.flag_details | object or null | The flag, or null when not flagged. |
data.flag_details.reason | string | Why the review was flagged. |
data.flag_details.reason_identifier | string or null | The flag reason category. |
data.flag_details.flag_reason_detail | string or null | The extra detail given when flagging. |
data.flag_details.flag_date | string or null | When it was flagged (ISO 8601). |
data.response_capabilities | object | Whether a response can be sent now. |
data.response_capabilities.manual | boolean | Whether you can write and send a response. |
data.response_capabilities.ai | boolean | Whether you can send an AI-drafted response. |
data.response_capabilities.reason | string or null | Why not, when either is false, e.g. no_store_plan, dormant_tier, pre_response_cutoff, past_response_window_expired, past_response_quota_reached or past_response_unavailable. Otherwise null. |
data.response | object or null | The response to the review, or null when there is none. |
data.response.id | integer | The response's id. |
data.response.status | string | Where the response is: e.g. complete (posted), pending (in the posting queue), or why it wasn't posted, e.g. login_error. The flag chip explains it. |
data.response.public_contents | string or null | The response text posted on the site. |
data.response.private_contents | string or null | The private part of the response, or null. |
data.response.response_date | string or null | When the response was made, or null. |
data.response.deleted | object or null | Set when the response was removed from the site, otherwise null. |
data.response.deleted.delete_on | string | When it was removed. |
data.response.deleted.status | string | The removal status. |
checkUnamePass | integer | 1 when there's no saved login or connection for this site on the location, so a response can't be posted yet; otherwise 0. |
standalone_type | string or null | Always null on this endpoint. |
standalone_popup_message | string | Always "" on this endpoint. |
Response payload
{
"data": {
"id": 265997,
"source_platform": "google",
"review": {
"id": 265997,
"reviewer": "Jane Smith",
"rating": 4,
"message": "Busy, but clean.",
"review_date": "2026-09-23T10:09:39.000000Z"
},
"reviewsite": {
"id": 44,
"name": "Google",
"link": "http://maps.google.com",
"review_site_logo": "https://d2ny6zb7otrnhl.cloudfront.net/static/images/img-google.png",
"review_site_color": "#4285F4",
"auth_type": "oauth",
"scraping_enabled": true,
"posting_enabled": true
},
"store": {
"id": 3007,
"name": "Acme Coffee - Sydney",
"slug": "acme-coffee",
"address": "1 George St, Sydney, NSW"
},
"store_reviewsite": {
"id": 8784,
"url": "https://www.google.com/maps/place/Wynyard/@-33.8648805,151.2065622,1523m/data=!3m1!1e3!4m6!3m5!1s0x6b12ae40e6fcf9eb:0x45845f7ff56e0d1!8m2!3d-33.86594!4d151.2061!16s%2Fg%2F1262gn7v0?entry=ttu&g_ep=EgoyMDI2MDkyMC4wIKXMDSoASAFQAw%3D%3D",
"landing_page_url": "https://www.google.com/maps/place/Wynyard/@-33.8648805,151.2065622,1523m/data=!3m1!1e3!4m6!3m5!1s0x6b12ae40e6fcf9eb:0x45845f7ff56e0d1!8m2!3d-33.86594!4d151.2061!16s%2Fg%2F1262gn7v0?entry=ttu&g_ep=EgoyMDI2MDkyMC4wIKXMDSoASAFQAw%3D%3D",
"connection_status": "Disconnected",
"is_connected": false
},
"flag": [],
"plan": "",
"review_flag": null,
"is_flaggable": true,
"flag_status": "none",
"flag_details": null,
"response_capabilities": {
"manual": true,
"ai": true,
"reason": null
},
"response": null
},
"checkUnamePass": 1,
"standalone_type": null,
"standalone_popup_message": ""
}Examples
Success payload
See Response payload.
Error payload
403 Location not available to you
{
"message": "Forbidden",
"status": "error",
"errors": "Access denied"
}422 Missing review_id
{
"message": "The review id field is required.",
"errors": {
"review_id": [
"The review id field is required."
]
}
}422 Review outside your tree
{
"message": "The selected review id does not belong to your company hierarchy.",
"errors": {
"review_id": [
"The selected review id does not belong to your company hierarchy."
]
}
}| Status | Meaning |
|---|---|
200 | The review. |
401 | The token is missing, expired or invalid. |
403 | The review's location is in your tree but isn't active or pending, or isn't assigned to your user (Access denied). |
422 | review_id is missing, not an integer, doesn't exist, or is outside your tree. |
500 | Unexpected server error. |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/response/get/review?review_id=265997" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 17 days ago
Did this page help you?
