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

Base URL

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

Endpoint

GET /api/v1/reports/insights

Authentication

Partner or Account token

  • store_id must 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

This endpoint has no rate limit.

Request parameters

ParameterInTypeRequiredDescription
store_idqueryintegerYesThe location.
platformquerystringNoOnly 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.

FieldTypeDescription
summarystring or nullPlaceholder text, AI insights pending generation., when there are reviews; null when there are none.
key_insightsarrayAlways empty [] for now.
category_performanceobjectOne 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>.countintegerReviews from that site.
category_performance.<site>.avg_ratingnumberAverage star rating, to 2 decimal places.
category_performance.<site>.positive_countintegerReviews rated 4 or 5.
category_performance.<site>.negative_countintegerReviews rated 1 or 2.
review_count_usedintegerHow many reviews were counted, 0 to 30.
lookback_daysintegerDays from the oldest counted review to now. 180 when there are no reviews.
generated_atstringWhen 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."
    ]
  }
}
StatusMeaning
200The summary, with zero counts when there are no recent reviews.
401The token is missing, expired or invalid.
403The location isn't one your token can reach, or doesn't exist.
422store_id is missing or isn't an integer.
500Unexpected 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'

Did this page help you?