Import review-site updates from Excel
Overview
Upload a filled-in review-site credentials Excel file for an account. The endpoint validates its header row, stores it on S3, and emails a confirmation to the support address for back-office processing.
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/excel/review-site-update
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Partner and Account tokens.
-
The target must sit inside your own account tree, keyed on
account_id. It must be a non-deletedcompanyrow withbundle_id=3at or under the auth user's company. -
A Partner can upload for any account in their tree. An Account user only for their own account.
-
Sent as
multipart/form-data. -
The uploaded file's first heading row must match exactly:
location_name, address, city, state, zip, sau_code,review_site, url, username, password, landing_page_url. An invalid or mismatched header returns a 422 unprocessable-entity.
Rate limit
- No rate limit.
Request body
- Body (
multipart/form-data):
| Field | Type | Required | Description |
|---|---|---|---|
account_id | integer | yes | Account company id; must be an existing account, not soft-deleted, and belong to the auth user's hierarchy. |
review_site_file | file | yes | Excel file, mimetype application/vnd.ms-excel or application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.xls/.xlsx), max 10240 KB. Header row must match the 11-column template above. |
Response
data.status(string) — always"success"on a valid upload.data.message(string) — fixed confirmation copy: "Thank you. Upload complete. We will confirm with you once review sites are live."
200 OK · 200
200{
"data": {
"status": "success",
"message": "Thank you. Upload complete. We will confirm with you once review sites are live."
}
}Errors
| Status | Meaning |
|---|---|
400 | The request was rejected — the response explains why |
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/excel/review-site-update" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--form 'account_id=123' \
--form 'review_site_file=@review_site_file.xlsx'Updated 8 days ago
