PDF — performance report

Overview

Returns the full performance-report dataset for a PDF: header/company block, KPIs (with previous-period comparisons), sentiment split, per-site and per-location review/response breakdowns, and the review-response feed.

Prerequisites

  • A bearer token. Callable with Account tokens.

Base URL

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

Endpoint

POST /api/v1/reports/pdf/performance-report

Authentication

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

  • Who can call it: Account tokens.

  • Inside the generic account-side group; no partner/Hipages/dormant gating.

  • Scope is the caller's own company: stores resolve via and an explicit store_id must sit inside your own account tree.

  • The company block adapts to the caller's bundle. An account (bundle_id == 3) reports its own name with an empty store_name. Otherwise (location-account) it reports the parent company name plus the single store's name.

  • The partner white-label logo comes.

Rate limit

  • No rate limit.

Request body

  • Body:
FieldTypeRequiredDescription
range_startstringyesdate_format:Y-m-d H:i:s; start of range.
range_endstringyesdate_format:Y-m-d H:i:s; end of range.
store_idintegernoMust be an existing location and pass an ownership check. When omitted, the response covers all of your locations.
is_pdfintegernoin:0,1. When 1, response_feed is capped at 50 rows (and ResponseFeed uses local asset logos instead of S3 URLs).
{
  "range_start": "2024-01-01 00:00:00",
  "range_end": "2024-12-31 23:59:59",
  "store_id": 1,
  "is_pdf": 1
}

Response

  • start / end (string) — echoed range bounds.
  • data.company (object) — account_name (string), store_name (string|null), logo (string|null, white-label partner logo).
  • data.kpis_data (object) — from: total_reviews, avg_rating, total_responded, total_response_rate, avg_response_time, noLoginNoRespons, plus previous-period total_reviews_previous, avg_rating_previous.
  • data.reviewsSentiments (object) — negativeReviews/_percent, positiveReviews/_percent, neutralReviews/_percent.
  • data.review_response_by_site (array, re-indexed via array_values) — per site: id, review_site, total_reviews, avg_rating, per_of_total, total_response, per_total_response.
  • data.review_response_by_location (array) — per location: id, name, total_reviews, avg_rating, per_of_total, total_response, per_total_response, avg_response_time.
  • data.response_feed (array) — ResponseFeed resource collection. Each item carries source_platform, review, reviewsite, store, store_reviewsite, flag, plan, review_flag, is_flaggable, flag_status, flag_details, response_capabilities, and response (null when none).

200 Success · 200

{
  "data": {
    "start": "2024-01-01 00:00:00",
    "end": "2024-12-31 23:59:59",
    "company": {
      "account_name": "Burger King",
      "store_name": "Burger King 1",
      "logo": "https://example.com/logo.png"
    },
    "kpis_data": {
      "total_reviews": 5,
      "avg_rating": 4.2,
      "total_responded": 4,
      "total_response_rate": 80.0,
      "avg_response_time": 1.5,
      "noLoginNoRespons": 1,
      "total_reviews_previous": 3,
      "avg_rating_previous": 3.8
    },
    "reviewsSentiments": {
      "negativeReviews": 1,
      "negativeReviews_percent": 20.0,
      "positiveReviews": 3,
      "positiveReviews_percent": 60.0,
      "neutralReviews": 1,
      "neutralReviews_percent": 20.0
    },
    "review_response_by_site": [
      {
        "id": 44,
        "review_site": "google",
        "total_reviews": 5,
        "avg_rating": 4.2,
        "per_of_total": 100.0,
        "total_response": 4,
        "per_total_response": 80.0
      }
    ],
    "review_response_by_location": [
      {
        "id": 8748,
        "name": "Burger King 1 - San Diego",
        "total_reviews": 5,
        "avg_rating": 4.2,
        "per_of_total": 100.0,
        "total_response": 4,
        "per_total_response": 80.0,
        "avg_response_time": 1.5
      }
    ],
    "response_feed": []
  }
}

Errors

StatusMeaning
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/reports/pdf/performance-report" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"range_start": "2024-01-01 00:00:00", "range_end": "2024-12-31 23:59:59", "store_id": 1, "is_pdf": 1}'

Did this page help you?