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
campaignIdof the record you are targeting.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://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). (404Campaign not foundotherwise). -
Non-account users get 403.
Rate limit
- No rate limit.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
campaignId | integer | Required | Digits only. |
Query parameters
- Query:
start_date(stringY-m-d, optional) — defaults to campaigncreated_atstart-of-day. - Query:
end_date(stringY-m-d, optional) — defaults to now end-of-day. Ifstart_date > end_datethe 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'sname.placeholder(string) — template placeholder token.destination_url(string) —campaign_click_urls.url; if empty and alanding_page_idexists, synthesized as{white_url}/lp/{landing_page_id}?store_id={store_id}&preview=true.click_count(int) — count ofcampaign_click_eventswithevent = 'click', non-nullsms_request_id, in window.unique_ips(int) — distinctipcount over those events.last_clicked(string ISO-8601 or null) — max eventcreated_at. Rows sorted byclick_countdesc.
200 Success · 200
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
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
403 | The token is valid but the record sits outside your account |
404 | The campaign id does not exist or is not yours (Campaign not found) |
422 | The request failed validation — the response names the fields |
500 | Unexpected 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'Updated 9 days ago
Did this page help you?
