PDF export (account)
Overview
Returns the full performance-report dataset for a PDF: 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
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://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_idmust 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 emptystore_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:
| Field | Type | Required | Description |
|---|---|---|---|
range_start | string | yes | date_format:Y-m-d H:i:s; start of range. |
range_end | string | yes | date_format:Y-m-d H:i:s; end of range. |
store_id | integer | no | Must be an existing location and pass an ownership check. When omitted, the response covers all of your locations. |
is_pdf | integer | no | in: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, plusresponse_rate_pct,awaiting_response,response_previous, and previous-periodtotal_reviews_previous,avg_rating_previous.data.reviewsSentiments(object) —negativeReviews/_percent,positiveReviews/_percent,neutralReviews/_percent.data.review_response_by_site(array, re-indexed viaarray_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) —ResponseFeedresource collection. Each item carriessource_platform,review,reviewsite,store,store_reviewsite,flag,plan,review_flag,is_flaggable,flag_status,flag_details,response_capabilities, andresponse(null when none).
200 Success · 200
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
| Status | Meaning |
|---|---|
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/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}'Updated 8 days ago
