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
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://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 viastore_id+review_site_id, orclient_location_id+review_site_id. The alt identifiers resolve to a pivot id inprepareForValidation, scoped to the caller's accessible stores. Then an ownership check enforces hierarchy. -
The
hashflow accepts ONLYstore_review_site_idand 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_idresolution per caller, so the same id can differ between partners.
Rate limit
- 30 requests/min.
Request body
- Body:
| Field | Type | Required | Description |
|---|---|---|---|
store_review_site_id | integer | one identifier path required | Direct pivot id (highest priority); exists + an ownership check. |
store_id | integer | with review_site_id (alt path) | Must be an existing location; resolves the pivot within the store. |
client_location_id | string | with review_site_id (alt path) | Max 255; resolves within caller's accessible stores. |
review_site_id | integer | required when using store_id or client_location_id | Must be an existing review site. |
hash | string | hash flow only | Invite hashid [store_id, 15]; tokenless; only with store_review_site_id. |
url | string (url) | optional | 5–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_url | string (url) | optional | 5–2000; defaults to url when you omit it. |
username | string | optional | 2–1000; NameNoAngleBrackets. Written unconditionally — omitting it clears the stored username. Only password is preserved when omitted. |
password | string | optional | 5–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_zip | string | sometimes-required (BBB, id 45) | |
sa_replier_first_name / _last_name / _email / _title | string | sometimes-required (SeniorAdvisor, id 68) | |
external_id / external_name | string | required_if:review_site_id,20 (Caring) | Max 255; setting external_id connects Caring. |
conFirmDisableTwoFactorAuthentication | integer (0/1) | optional | 1 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
200{ "data": { "status": "success", "message": "The URL and/or password was successfully updated!" } }Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
422 | The request failed validation — the response names the fields |
500 | Unexpected 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>"}'Updated 9 days ago
