SMS report

Get SMS-channel KPIs (valid recipients, processed, sent, delivered, clicked, failed, tests, kiosk) plus computed rates and a per-day timeseries for one campaign.

Auth: Account — authentication bearer token; requires the user's own company bundle_id === 3 (ACCOUNT). The campaign, so an account can only read its own campaigns (404 Campaign not found otherwise). Non-account users get 403.

Rate limit: No rate limit.

Request

  • Query: start_date (string Y-m-d, optional) — defaults to the campaign's created_at start-of-day.
  • Query: end_date (string Y-m-d, optional) — defaults to now end-of-day. If start_date > end_date the two are swapped.

Response{ data. } envelope. Note: the controller passes an array that already contains status and data keys to successResponse, so the literal payload is { data: { status: "success", data: { kpis, timeseries } } }.

  • data.status (string) — "success".
  • data.data.kpis.recipients_valid (int) — count of audience rows with is_phone_valid = 'valid', is_test = false.
  • data.data.kpis.sent / delivered / clicked / failed / processed (int) — non-test counts within the date window (sent_at / delivered_at / link_clicked_at / failed_at / created_at respectively; failed also requires status = 'failed').
  • data.data.kpis.tests_sent (int) — is_test = true requests created in window.
  • data.data.kpis.kiosk_sent (int) — non-test is_kiosk = true requests in window.
  • data.data.kpis.rates.processed_rate / delivery_rate / click_rate / sent_vs_audience_rate (float, 2dp) — percentages; 0 when denominator is 0.
  • data.data.timeseries.by_day[] (array) — one row per calendar day in range with date (Y-m-d), sent, delivered, clicked, failed, processed (all int).

Path params

ParameterTypeRequiredNotes
campaignIdintegerRequiredDigits only.

Errors: 422 on validation failure.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required
Response

Language
Credentials
Bearer
JWT
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json