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

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://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_id is 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 (the token from Send the business owner a connection link) with store_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

FieldTypeRequiredDescription
store_review_site_idintegerNoThe 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_idintegerNoThe location, used with review_site_id. Must exist.
client_location_idstringNoYour own id for the location, used with review_site_id. Up to 255 characters.
review_site_idintegerNoThe review site. Required with store_id or client_location_id. Must exist.
hashstringNoThe invite hash from a connection link, used instead of a token. Only with store_review_site_id.
urlstringNoThe 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_urlstringNoWhere review requests send customers to leave a review. A valid URL, 5–2000 characters. Defaults to url.
usernamestringNoThe 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.
passwordstringNoThe 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_namestringNoBBB only (review site 45): the owner's name. Can't be empty when sent.
bbb_owner_emailstringNoBBB only: the owner's email. Can't be empty when sent.
bbb_location_zipstringNoBBB only: the location's zip, 3–12 characters. Can't be empty when sent.
sa_replier_first_namestringNoSeniorAdvisor only (review site 68): the replier's first name. Can't be empty when sent.
sa_replier_last_namestringNoSeniorAdvisor only: the replier's last name. Can't be empty when sent.
sa_replier_emailstringNoSeniorAdvisor only: the replier's email. Can't be empty when sent.
sa_replier_titlestringNoSeniorAdvisor only: the replier's job title. Can't be empty when sent.
external_idstringNoCaring 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_namestringNoCaring only: the location's name on Caring. Required when review_site_id is 20. Up to 255 characters.
conFirmDisableTwoFactorAuthenticationintegerNo1, 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.

FieldTypeDescription
statusstringsuccess.
messagestringThe 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."
}
StatusMeaning
200The connection was saved.
401No token and no hash, or the token is expired or invalid.
422No connection matches the identifiers, it's outside your tree, the hash is invalid, or a field is invalid.
429Rate limit exceeded.
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": 8782, "url": "https://www.yelp.com/biz/demo", "landing_page_url": "https://www.yelp.com/writeareview/biz/demo", "username": "[email protected]", "password": "<your-password>"}'

Did this page help you?