Create partner email report

Overview

Create a scheduled partner-level email report (activity/response/feed/etc.) for a recipient, scoped to all accounts the partner owns or to a specific list of account companies.

Prerequisites

  • A bearer token. Callable with Partner tokens.

Base URL

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

Endpoint

POST /api/v1/partner/reports/add

Authentication

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

  • Who can call it: Partner tokens.

  • Lives under the partner/* group (partner-admin scope, no Hipages gate).

  • The owning company is the auth user's.

  • Each account.* id must sit inside your own account tree, so a partner can only target account companies inside its own company tree.

  • The recipient comes either from an existing user (old_recipient_email) or created fresh from recipient_email + name.

Rate limit

  • No rate limit.

Request body

  • Body:
FieldTypeRequiredDescription
reportTypestringyesOne of activity_report, response_report, review_feed, review_feed_star, review_responses, review_site_connections, insight_report (forces month frequency). review_feed/review_feed_star are forced to day frequency.
reportPeriodTypestringyesday, week, or month. Further constrained by based on reportType.
all_accountintegeryes1 = all accounts the partner owns, 0 = specific accounts. Rule required|nullable|in:0,1.
accountint[]required_if all_account=0Account company ids; each must be an existing account and pass an ownership check.
old_recipient_emailstring(email)required_without recipient_emailExisting user's email; report attached to that user.
recipient_emailstring(email)required_without old_recipient_emailNew recipient email.
recipient_first_namestring(max 100)required_without old_recipient_emailNew recipient first name.
recipient_last_namestring(max 100)required_without old_recipient_emailNew recipient last name.
{
  "reportType": "activity_report",
  "reportPeriodType": "month",
  "all_account": 0,
  "account": [
    10,
    11
  ],
  "recipient_email": "[email protected]",
  "recipient_first_name": "Jane",
  "recipient_last_name": "Doe"
}

Response

  • data.status (string) — success.
  • data.response (string) — message Report has been saved successfully!. On missing company / unknown old_recipient_email, a 400 { status: 'error', response: 'Company not found!' | 'User not found!' } comes back instead.

200 Success · 200

{
  "data": { "status": "success", "response": "Report has been saved successfully!" }
}

400 User not found · 400

{
  "message": "Bad Request",
  "status": "error",
  "errors": { "status": "error", "response": "User not found!" }
}

Errors

StatusMeaning
400User not found
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/partner/reports/add" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"reportType": "activity_report", "reportPeriodType": "month", "all_account": 0, "account": [10, 11], "recipient_email": "[email protected]", "recipient_first_name": "Jane", "recipient_last_name": "Doe"}'

Did this page help you?