List a location's review sites
Overview
Get every review site on a location with the state of each connection: whether it has a review URL, whether collection is on, and whether posting is authorized.
Use this to see what's set up before making changes, or to build a connection-status view in your own dashboard. It's also where you get each connection's store_review_site_id.
You'll need the store_id or your client_location_id.
Returns one entry per site with its IDs, URLs, and status. Google comes first, then Yelp and Facebook, then the other sites.
Prerequisites
- A bearer token. See Authentication.
- The location's
store_id, or your ownclient_location_idfor it.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/store-review-site/list
Authentication
Partner or Account token
- The location must be inside your own account tree. A Partner token can list any location under the partner; an Account token only its own account's locations.
- A location outside your tree is rejected with
422.
Rate limit
This endpoint has no rate limit.
Request parameters
None.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
store_id | integer | No | The location. Required unless you send client_location_id. Must exist and be inside your account tree. |
client_location_id | string | No | Your own id for the location, used instead of store_id. Up to 255 characters. |
has_landing_page | integer | No | 1: only sites that have a landing page URL. 0 or left out: all sites. |
check_connection | integer | No | 0: skip the connection check for a faster call; the connection fields come back empty (connectionStatus "", the card-state fields null). 1 or left out: include them. |
sort_field | string | No | review_site. Accepted, but the order is fixed (see Overview). |
sort_by | string | No | asc or desc. Accepted, but the order is fixed (see Overview). |
Request payload
{
"store_id": 3007,
"has_landing_page": 0,
"check_connection": 1
}Response body
The rows are in a top-level data array, next to store_name.
| Field | Type | Description |
|---|---|---|
data | array of objects | One entry per review site on the location. |
data[].id | integer | The connection's id (store_review_site_id). |
data[].url | string or null | The site's review URL for this location. null when not set. |
data[].landing_page_url | string or null | The landing page URL: where review requests send customers to leave a review. null when not set. |
data[].created_at | string | When the site was added to the location (ISO 8601). |
data[].url_status | string | enable or disable. Whether the landing page URL is used in review requests. |
data[].connectionStatus | string | Connected, Awaiting or Disconnected. "" with check_connection 0. |
data[].is_connected | integer | 1 when connected, otherwise 0. |
data[].lock_color | string | Status colour: green (connected), orange (awaiting) or gray. |
data[].sendto_scrapper | string | Y when review collection is on, N when it's off. |
data[].display_as_connected | boolean | true when the site is set to show as connected without a live connection. |
data[].reviews_status | string or null | Review collection: streaming, offline or no_url. |
data[].posting_status | string or null | Response posting: active, in_progress, off, access_lost or offline. |
data[].has_url | boolean or null | Whether the site has a review URL. |
data[].error_code | string or null | The connection problem's code, e.g. E-002. null when posting isn't blocked. |
data[].error_title | string or null | Short title of the problem, e.g. Connection sign-in lost. |
data[].error_reason | string or null | What went wrong and how to fix it, in plain language. |
data[].fix_sheet | string or null | The next step to show: none, pending, connect_url, enable_posting, oauth_reconnect or manager_invite. |
data[].last_scraped_at | string or null | When reviews were last collected (ISO 8601), or null. |
data[].connect_page_url | string | This site's page in the Shout About Us web app (or your white-label domain), where the connection is set up. |
data[].review_site | object | The review site. |
data[].review_site.id | integer | The review site's id (review_site_id). |
data[].review_site.name | string | The review site's name, e.g. Yelp. |
data[].review_site.publisher | string | The site's domain, e.g. yelp.com. |
data[].review_site.link | string | The site's home page. |
data[].review_site.review_site_icon | string | URL of the site's logo. |
data[].review_site.review_site_color | string | The site's brand colour, e.g. #d32200. |
data[].review_site.self_form_enabled | string | Y when review requests for this site open the Shout About Us review form instead of the site's landing page. Otherwise N. |
data[].review_site.auth_type | string or null | How the site connects: oauth, cookie, credential, default, restapi, or null. See List supported review sites. |
data[].review_site.scraping_enabled | boolean | Whether reviews can be collected from this site. |
data[].review_site.posting_enabled | boolean | Whether responses can be posted to this site. |
data[].review_site.keywords | array of strings | The site's placeholders for review-request templates, e.g. [reviewSite_1]. |
store_name | string | The location's name, followed by - and your client_location_id, or the location's storeId label (by default its city) when it has none. |
Response payload
{
"data": [
{
"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",
"created_at": "2026-09-23T10:43:45.000000Z",
"url_status": "disable",
"connectionStatus": "Disconnected",
"is_connected": 0,
"lock_color": "gray",
"sendto_scrapper": "Y",
"display_as_connected": false,
"reviews_status": "streaming",
"posting_status": "offline",
"has_url": true,
"error_code": "E-002",
"error_title": "Connection sign-in lost",
"error_reason": "Your Google connection dropped, so responses are paused. Tap Reconnect and sign in with the same account, then approve access to resume.",
"fix_sheet": "oauth_reconnect",
"last_scraped_at": null,
"connect_page_url": "https://production.shoutaboutus.com/connect-review-sites/5oogfx/edit-site/3007/Google/8784/",
"review_site": {
"id": 44,
"name": "Google",
"publisher": "maps.google.com",
"link": "http://maps.google.com",
"review_site_icon": "https://d2ny6zb7otrnhl.cloudfront.net/assets/backend/images/logos/google_ic.png",
"review_site_color": "#4285F4",
"self_form_enabled": "N",
"auth_type": "oauth",
"scraping_enabled": true,
"posting_enabled": true,
"keywords": [
"[reviewSite_44]"
]
}
},
{
"id": 8782,
"url": null,
"landing_page_url": null,
"created_at": "2026-09-23T10:43:45.000000Z",
"url_status": "disable",
"connectionStatus": "Disconnected",
"is_connected": 0,
"lock_color": "gray",
"sendto_scrapper": "Y",
"display_as_connected": false,
"reviews_status": "no_url",
"posting_status": "off",
"has_url": false,
"error_code": null,
"error_title": null,
"error_reason": null,
"fix_sheet": "connect_url",
"last_scraped_at": null,
"connect_page_url": "https://production.shoutaboutus.com/connect-review-sites/5oogfx/edit-site/3007/Yelp/8782/",
"review_site": {
"id": 1,
"name": "Yelp",
"publisher": "yelp.com",
"link": "http://www.yelp.com",
"review_site_icon": "https://d2ny6zb7otrnhl.cloudfront.net/assets/backend/images/logos/yelp_ic.png",
"review_site_color": "#d32200",
"self_form_enabled": "N",
"auth_type": "cookie",
"scraping_enabled": true,
"posting_enabled": true,
"keywords": [
"[reviewSite_1]"
]
}
}
],
"store_name": "Acme Coffee - docs-test-loc-001"
}Examples
Success payload
See Response payload.
Error payload
422 Missing store_id
{
"message": "The store id field is required when client location id is not present.",
"errors": {
"store_id": [
"The store id field is required when client location id is not present."
]
}
}422 Location outside your tree
{
"message": "The selected store id does not belong to your company hierarchy.",
"errors": {
"store_id": [
"The selected store id does not belong to your company hierarchy."
]
}
}422 Invalid values
{
"message": "The selected sort by is invalid. (and 3 more errors)",
"errors": {
"sort_by": [
"The selected sort by is invalid."
],
"has_landing_page": [
"The selected has landing page is invalid."
],
"check_connection": [
"The check connection field must be an integer.",
"The selected check connection is invalid."
]
}
}| Status | Meaning |
|---|---|
200 | The location's review sites. |
401 | The token is missing, expired or invalid. |
422 | No location sent, the location is outside your tree, or a value isn't allowed. |
500 | Unexpected server error. |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/store-review-site/list" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"store_id": 3007, "has_landing_page": 0, "check_connection": 1}'Updated 17 days ago
Did this page help you?
