SMS click URLs

Overview

Get SMS click-URL statistics for a campaign — one row per campaign_click_urls (channel sms) with click count, distinct-IP count, and last-clicked timestamp over the date window.

Prerequisites

  • A bearer token. Callable with Account tokens.
  • The campaignId of the record you are targeting.

Base URL

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

Endpoint

GET /api/v1/campaign/{campaignId}/report/sms/click-urls

Authentication

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

  • Who can call it: Account tokens.

  • Requires the user's own company bundle_id === 3 (ACCOUNT). (404 Campaign not found otherwise).

  • Non-account users get 403.

Rate limit

  • No rate limit.

Path parameters

ParameterTypeRequiredDescription
campaignIdintegerRequiredDigits only.

Query parameters

  • Query: start_date (string Y-m-d, optional) — defaults to campaign 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.status (string) — "success".
  • data.data[] (array) — per click-URL row:
  • id (int) — campaign_click_urls.id.
  • url_name (string) — the URL's name.
  • placeholder (string) — template placeholder token.
  • destination_url (string) — campaign_click_urls.url; if empty and a landing_page_id exists, synthesized as {white_url}/lp/{landing_page_id}?store_id={store_id}&preview=true.
  • click_count (int) — count of campaign_click_events with event = 'click', non-null sms_request_id, in window.
  • unique_ips (int) — distinct ip count over those events.
  • last_clicked (string ISO-8601 or null) — max event created_at. Rows sorted by click_count desc.

200 Success · 200

{
  "data": {
    "status": "success",
    "data": [
      {
        "id": 45,
        "url_name": "Direct to Manager",
        "placeholder": "directTo_manager",
        "destination_url": "https://example.com/manager",
        "click_count": 25,
        "unique_ips": 20,
        "last_clicked": "2024-01-15T10:30:00.000000Z"
      }
    ]
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
403The token is valid but the record sits outside your account
404The campaign id does not exist or is not yours (Campaign not found)
422The request failed validation — the response names the fields
500Unexpected server error

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/campaign/123/report/sms/click-urls" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?