Email reports list
Overview
Returns a paginated list of the authenticated user's company email reports (recipient + cadence + targeted stores/accounts), with optional sorting and single-field search.
Prerequisites
- A bearer token. Callable with Partner and Account tokens.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/email-report/list
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Partner and Account tokens.
-
Mounted under the role-agnostic
account/*group (no bundle gate). -
The list is hard-scoped to the auth user's company. A partner sees partner-level reports; an account user sees account-level reports for their own company.
-
If the user has no company, the response is an empty collection.
Rate limit
- No rate limit.
Request body
- Body (all optional):
| Field | Type | Required | Description |
|---|---|---|---|
sort_field | string | no | One of first_name, last_name, email, report_type, report_period_type_id. |
sort_by | string | no | asc/ASC/desc/DESC (defaults to ASC when sort_field set). |
search_field | string | no | One of first_name, last_name, email, report_type, report_period_type_id, store_name. |
search_value | string | no | Filter value (paired with search_field); NameNoAngleBrackets rule. |
limit | integer | no | Page size, 10–100 (values below 10 are raised to 10); defaults to 10. |
{
"sort_field": "email",
"sort_by": "ASC",
"search_field": "store_name",
"search_value": "Main",
"limit": 10
}Response
id(integer) — report id.first_name(string|null) — recipient first name (fromemails).last_name(string|null) — recipient last name.email(string|null) — recipient email.report_type(integer) — the report'sreport_type_idaliased asreport_type.report_period_type_id(integer) — cadence period type id.all_store(integer) — 0/1.store_list(array) — objects{ value:store_id, label: name [+ ' - ' + storeid] }.account_list(array) — objects{ value:company_id, label: company name }.
200 OK · 200
200{
"data": [
{
"id": 12,
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"report_type": 1,
"report_period_type_id": 2,
"all_store": 0,
"store_list": [
{ "value": 8748, "label": "Downtown Location - LOC-001" }
],
"account_list": [
{ "value": 31, "label": "Brand A" }
]
}
],
"links": {
"first": "https://api.example.com/api/v1/email-report/list?page=1",
"last": "https://api.example.com/api/v1/email-report/list?page=5",
"prev": null,
"next": "https://api.example.com/api/v1/email-report/list?page=2"
},
"meta": {
"current_page": 1,
"per_page": 10,
"total": 50
}
}422 Validation error · 422
422{
"message": "The selected sort field is invalid.",
"errors": {
"sort_field": ["The selected sort field is invalid."],
"limit": ["The limit field must not be greater than 100."]
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
422 | Validation error |
500 | Unexpected server error |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/email-report/list" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"sort_field": "email", "sort_by": "ASC", "search_field": "store_name", "search_value": "Main", "limit": 10}'Updated 9 days ago
Did this page help you?
