Update store-review-site

Overview

Update a single store-review-site row's URL, landing page, credentials and site-specific extras (BBB / Caring / SeniorAdvisor fields). It enables the scraper when a URL is present on an active store, and dispatches a pull job.

Prerequisites

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

Base URL

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

Endpoint

POST /api/v1/store-review-site/update

Authentication

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

  • Who can call it: Partner and Account tokens.

  • Authenticate with a bearer token OR an invite hash.

  • Authenticated callers target the row via store_review_site_id, or via store_id+review_site_id, or client_location_id+review_site_id. The alt identifiers resolve to a pivot id in prepareForValidation, scoped to the caller's accessible stores. Then an ownership check enforces hierarchy.

  • The hash flow accepts ONLY store_review_site_id and binds it to the hash's store.

  • Per role: a Partner can reach/resolve rows across its whole tree. An Account only its account's.

  • The endpoint scopes client_location_id resolution per caller, so the same id can differ between partners.

Rate limit

  • 30 requests/min.

Request body

  • Body:
FieldTypeRequiredDescription
store_review_site_idintegerone identifier path requiredDirect pivot id (highest priority); exists + an ownership check.
store_idintegerwith review_site_id (alt path)Must be an existing location; resolves the pivot within the store.
client_location_idstringwith review_site_id (alt path)Max 255; resolves within caller's accessible stores.
review_site_idintegerrequired when using store_id or client_location_idMust be an existing review site.
hashstringhash flow onlyInvite hashid [store_id, 15]; tokenless; only with store_review_site_id.
urlstring (url)optional5–2000 chars. Written unconditionally — omitting it clears the stored review-site URL (and the landing-page URL when landing_page_url is also omitted).
landing_page_urlstring (url)optional5–2000; defaults to url when you omit it.
usernamestringoptional2–1000; NameNoAngleBrackets. Written unconditionally — omitting it clears the stored username. Only password is preserved when omitted.
passwordstringoptional5–1000; becomes required_with:username when the row has no saved creds and the site is not non-LDE.
bbb_owner_name / bbb_owner_email / bbb_location_zipstringsometimes-required (BBB, id 45)
sa_replier_first_name / _last_name / _email / _titlestringsometimes-required (SeniorAdvisor, id 68)
external_id / external_namestringrequired_if:review_site_id,20 (Caring)Max 255; setting external_id connects Caring.
conFirmDisableTwoFactorAuthenticationinteger (0/1)optional1 resets the row out of the 2FA-pending state.
{
  "store_review_site_id": 5,
  "url": "https://www.google.com/maps/place/Demo",
  "landing_page_url": "https://search.google.com/local/writereview?placeid=ChIJ123",
  "username": "[email protected]",
  "password": "<your-password>"
}

Response

  • data.status (string) — success.
  • data.message (string) — The URL and/or password was successfully updated!.

200 OK · 200

{ "data": { "status": "success", "message": "The URL and/or password was successfully updated!" } }

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
422The request failed validation — the response names the fields
500Unexpected server error

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/store-review-site/update" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"store_review_site_id": 5, "url": "https://www.google.com/maps/place/Demo", "landing_page_url": "https://search.google.com/local/writereview?placeid=ChIJ123", "username": "[email protected]", "password": "<your-password>"}'

Did this page help you?