Export to Excel

Overview

Download the account's reviews and responses for the period as a spreadsheet.

Use this for offline analysis.

You'll need a token and a date range.

Returns a link to the file: the .xlsx is generated and stored, and data.path is its URL.

Prerequisites

  • A bearer token. See Authentication.
  • A date range (range_start, range_end), both Y-m-d H:i:s.
  • Optional: a location id (store_id). Leave it out to report on every location your token can see.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

POST /api/v1/reports/excel/review-response-feed

Authentication

Partner or Account token

  • store_id must be inside your own account tree; otherwise 422.
  • Without store_id, the report covers every location the token can see: every location under the partner for a Partner token, the account's locations for an Account token, or only the assigned locations for a user limited to some locations.
  • The file's header shows the name of the caller's own account.

Rate limit

60 requests per minute, counted per user (the token’s user). See Rate limits.

Request parameters

None.

Request body

FieldTypeRequiredDescription
range_startstringYesStart of the period, Y-m-d H:i:s (e.g. 2026-01-01 00:00:00). A date without a time is rejected.
range_endstringYesEnd of the period, Y-m-d H:i:s (e.g. 2026-09-30 23:59:59).
store_idintegerNoOne location to report on. Must exist and be inside your account tree. Leave it out to cover every location your token can see.
searchstringNoUp to 255 characters. Accepted but not used: it doesn't filter the export.

Request payload

{
  "range_start": "2026-01-01 00:00:00",
  "range_end": "2026-09-30 23:59:59",
  "store_id": 3007
}

Response body

The payload is inside data.

FieldTypeDescription
pathstringURL of the generated .xlsx file.

Response payload

{
  "data": {
    "path": "https://s3.amazonaws.com/bucket/download/excel/2026-10/1790000000-ReviewResponseReport.xlsx"
  }
}

Examples

Success payload

See Response payload.

Error payload

422 Dates missing

{
  "message": "The range start field is required. (and 1 more error)",
  "errors": {
    "range_start": [
      "The range start field is required."
    ],
    "range_end": [
      "The range end field is required."
    ]
  }
}

422 Date not in Y-m-d H:i:s

{
  "message": "The range start field must match the format Y-m-d H:i:s.",
  "errors": {
    "range_start": [
      "The range start field must match the format Y-m-d H:i:s."
    ]
  }
}

422 Location outside your tree

{
  "message": "The selected store id does not belong to your company hierarchy.",
  "errors": {
    "store_id": [
      "The selected store id does not belong to your company hierarchy."
    ]
  }
}

429 Too many requests

{
  "message": "Too Many Attempts."
}
StatusMeaning
200The file's URL.
401The token is missing, expired or invalid.
422A date is missing or not Y-m-d H:i:s, store_id doesn't exist or is outside your tree, or search is longer than 255 characters.
429More than 60 requests in a minute from this user.
500Unexpected server error.

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/reports/excel/review-response-feed" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"range_start": "2026-01-01 00:00:00", "range_end": "2026-09-30 23:59:59", "store_id": 3007}'

Did this page help you?