Set a site's URLs and credentials
Overview
Set the review URL for a site, and optionally its landing page URL and the login credentials used for posting. This is the step that starts review collection: as soon as a URL is saved on an active location, collection is switched on and a first collection is queued.
Use this when you know the location's page on a review site. Also use it to add or change posting credentials for sites that use a username and password.
You'll need to identify the connection one of three ways: store_review_site_id, or store_id + review_site_id, or client_location_id + review_site_id. Then the url, and optionally landing_page_url (defaults to url), username, and password. A few sites need extra fields (BBB, Caring, SeniorAdvisor); the parameter table lists them.
Collection starts on your plan's schedule. Important: this call replaces the whole connection, not just the fields you send. If you call it to change a password and leave out url, the URL is cleared and collection stops. Always send the url.
Prerequisites
- A bearer token, or the invite
hashfrom a connection link. See Authentication. - The connection: its
store_review_site_id(from List a location's review sites), or the location plusreview_site_id.
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
Partner or Account token
- The connection must be on a location inside your own account tree. A Partner token reaches any location under the partner; an Account token only its own account's locations. Otherwise
422. client_location_idis looked up only among the locations your token can reach, so the same id can mean different locations for different partners.- Or, with no token: send the invite
hash(thetokenfrom Send the business owner a connection link) withstore_review_site_id. The connection must be on the location the hash is for. The other identifiers aren't accepted with a hash.
Rate limit
30 requests per minute, counted per client IP address. See Rate limits.
Request parameters
None.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
store_review_site_id | integer | No | The connection's id. Send this, or store_id + review_site_id, or client_location_id + review_site_id. When you send more than one, store_review_site_id wins, then store_id. |
store_id | integer | No | The location, used with review_site_id. Must exist. |
client_location_id | string | No | Your own id for the location, used with review_site_id. Up to 255 characters. |
review_site_id | integer | No | The review site. Required with store_id or client_location_id. Must exist. |
hash | string | No | The invite hash from a connection link, used instead of a token. Only with store_review_site_id. |
url | string | No | The site's review URL for the location. A valid URL, 5–2000 characters. Always send it: leaving it out clears the saved URL. |
landing_page_url | string | No | Where review requests send customers to leave a review. A valid URL, 5–2000 characters. Defaults to url. |
username | string | No | The site's username. 2–1000 characters; no < or >. Leaving it out clears the saved username. Accepted and saved, but not used yet: posting responses with a site login isn't supported, so this doesn't connect posting. It will be supported for review sites whose auth_type is default in a future release. |
password | string | No | The site's password. 5–1000 characters; no < or >. Leaving it out keeps the saved password. Required with username when the connection has no saved login yet (except on sites that don't use a login). Accepted and saved, but not used yet: posting responses with a site login isn't supported, so this doesn't connect posting. It will be supported for review sites whose auth_type is default in a future release. |
bbb_owner_name | string | No | BBB only (review site 45): the owner's name. Can't be empty when sent. |
bbb_owner_email | string | No | BBB only: the owner's email. Can't be empty when sent. |
bbb_location_zip | string | No | BBB only: the location's zip, 3–12 characters. Can't be empty when sent. |
sa_replier_first_name | string | No | SeniorAdvisor only (review site 68): the replier's first name. Can't be empty when sent. |
sa_replier_last_name | string | No | SeniorAdvisor only: the replier's last name. Can't be empty when sent. |
sa_replier_email | string | No | SeniorAdvisor only: the replier's email. Can't be empty when sent. |
sa_replier_title | string | No | SeniorAdvisor only: the replier's job title. Can't be empty when sent. |
external_id | string | No | Caring only (review site 20): the location's Caring id. Required when review_site_id is 20. Up to 255 characters. Setting it connects Caring. |
external_name | string | No | Caring only: the location's name on Caring. Required when review_site_id is 20. Up to 255 characters. |
conFirmDisableTwoFactorAuthentication | integer | No | 1, with username and password: confirms two-factor sign-in is off on the site, so responses held for two-factor verification are queued to post again. |
Request payload
{
"store_review_site_id": 8782,
"url": "https://www.yelp.com/biz/demo",
"landing_page_url": "https://www.yelp.com/writeareview/biz/demo",
"username": "[email protected]",
"password": "<your-password>"
}Response body
The payload is inside data.
| Field | Type | Description |
|---|---|---|
status | string | success. |
message | string | The URL and/or password was successfully updated! |
Response payload
{
"data": {
"status": "success",
"message": "The URL and/or password was successfully updated!"
}
}Examples
Success payload
See Response payload.
Error payload
422 No connection identified
{
"message": "No review-site connection found. Provide one of: store_review_site_id, (store_id + review_site_id), or (client_location_id + review_site_id).",
"errors": {
"store_review_site_id": [
"No review-site connection found. Provide one of: store_review_site_id, (store_id + review_site_id), or (client_location_id + review_site_id)."
]
}
}422 Connection outside your tree
{
"message": "The selected store review site id does not belong to your company hierarchy.",
"errors": {
"store_review_site_id": [
"The selected store review site id does not belong to your company hierarchy."
]
}
}422 Invalid values
{
"message": "The url field must be at least 5 characters. (and 2 more errors)",
"errors": {
"url": [
"The url field must be at least 5 characters.",
"The url field must be a valid URL."
],
"username": [
"The username field must be at least 2 characters."
]
}
}429 Too many requests
{
"message": "Too Many Attempts."
}| Status | Meaning |
|---|---|
200 | The connection was saved. |
401 | No token and no hash, or the token is expired or invalid. |
422 | No connection matches the identifiers, it's outside your tree, the hash is invalid, or a field is invalid. |
429 | Rate limit exceeded. |
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": 8782, "url": "https://www.yelp.com/biz/demo", "landing_page_url": "https://www.yelp.com/writeareview/biz/demo", "username": "[email protected]", "password": "<your-password>"}'Updated 17 days ago
