AI insights summary
Overview
A quick summary of a location's recent reviews, broken down by review site.
Use this for a summary without generating a full report.
You'll need the store_id. It covers the location's 30 most recent reviews from the last 180 days; optionally narrow it to one review site with platform.
Returns the summary. The AI-written parts aren't generated yet: summary is a placeholder and key_insights is empty.
Prerequisites
- A bearer token. See Authentication.
- The location's id (
store_id).
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/reports/insights
Authentication
Partner or Account token
store_idmust be one of the locations your token can reach. A Partner token reaches every location under the partner; an Account token the locations under its own account, plus any assigned directly to the user.- A location outside that set returns
403.
Rate limit
120 requests per minute, counted per user (the token’s user). See Rate limits.
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
store_id | query | integer | Yes | The location. |
platform | query | string | No | Only count reviews from the review site with this name, e.g. Google. |
Request body
None.
Request payload
None.
Response body
The payload is inside data.
| Field | Type | Description |
|---|---|---|
summary | string or null | Placeholder text, AI insights pending generation., when there are reviews; null when there are none. |
key_insights | array | Always empty [] for now. |
category_performance | object | One entry per review site, keyed by the site's name (Unknown when the site isn't known). An empty array [] when there are no reviews. |
category_performance.<site>.count | integer | Reviews from that site. |
category_performance.<site>.avg_rating | number | Average star rating, to 2 decimal places. |
category_performance.<site>.positive_count | integer | Reviews rated 4 or 5. |
category_performance.<site>.negative_count | integer | Reviews rated 1 or 2. |
review_count_used | integer | How many reviews were counted, 0 to 30. |
lookback_days | integer | Days from the oldest counted review to now. 180 when there are no reviews. |
generated_at | string | When the summary was built (ISO 8601). |
Response payload
{
"data": {
"summary": "AI insights pending generation.",
"key_insights": [],
"category_performance": {
"Google": {
"count": 12,
"avg_rating": 4.5,
"positive_count": 9,
"negative_count": 1
}
},
"review_count_used": 12,
"lookback_days": 154,
"generated_at": "2026-10-01T16:47:41+00:00"
}
}Examples
Success payload
Reviews in the window: see Response payload.
No reviews in the last 180 days:
{
"data": {
"summary": null,
"key_insights": [],
"category_performance": [],
"review_count_used": 0,
"lookback_days": 180,
"generated_at": "2026-10-01T16:47:41+00:00"
}
}Error payload
403 Location out of scope
{
"message": "Store is outside your access scope.",
"status": "error",
"errors": []
}422 store_id missing
{
"message": "The store id field is required.",
"errors": {
"store_id": [
"The store id field is required."
]
}
}429 Too many requests
{
"message": "Too Many Attempts."
}| Status | Meaning |
|---|---|
200 | The summary, with zero counts when there are no recent reviews. |
401 | The token is missing, expired or invalid. |
403 | The location isn't one your token can reach, or doesn't exist. |
422 | store_id is missing or isn't an integer. |
429 | More than 120 requests in a minute from this user. |
500 | Unexpected server error. |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/reports/insights?store_id=3007" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 17 days ago
Did this page help you?
