Bulk-update credentials across the account

Overview

Bulk-sets username + password for one review site across every store under an account, enabling its scraper on each. Optionally persists the credentials so future stores inherit them.

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/bulk-update

Authentication

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

  • Who can call it: Partner and Account tokens.

  • account_id must be a bundle_id=3 account-company that passes an ownership check. The auth user's person.company_id must be a parent of it in the company tree.

  • A Partner can target any account under their tree. An Account user can only target its own account.

Rate limit

  • No rate limit.

Request body

  • Body:
FieldTypeRequiredDescription
review_site_idintegeryesMust be an existing review site.
usernamestringyes2–1000 chars; NameNoAngleBrackets (no </>). Stored CryptoJS-AES encrypted.
passwordstringyes5–1000 chars; NameNoAngleBrackets. Stored CryptoJS-AES encrypted.
account_idintegeryesAccount-company id (bundle_id=3, not soft-deleted); must belong to caller's hierarchy.
apply_to_future_storesstring (Y/N)noWhen Y, saves the credentials to company_meta_data (category review_site) so future stores reuse them.
{
  "review_site_id": 5,
  "username": "[email protected]",
  "password": "<encrypted-password>",
  "account_id": 7,
  "apply_to_future_stores": "Y"
}

Response

  • data.status (string) — success.
  • data.message (string) — The username and password has been updated successfully!. Returns a 400 with Store not found! if the account resolves to zero stores or the review site is invalid.

200 OK · 200

{ "data": { "status": "success", "message": "The username and password has been updated successfully!" } }

Errors

StatusMeaning
400The request was rejected — the response explains why
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/bulk-update" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"review_site_id": 5, "username": "[email protected]", "password": "<encrypted-password>", "account_id": 7, "apply_to_future_stores": "Y"}'

Did this page help you?