Email click URLs
Overview
Get per-URL click statistics for the email channel of a campaign. Which tracked click URLs were clicked, how many times, by how many distinct IPs, and when last clicked.
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/email/click-urls
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Account tokens.
-
A non-matching id returns 404
Campaign not found.
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) — click-event window start; defaults to campaigncreated_atstart-of-day. - Query:
end_date(stringY-m-d, optional) — window end; defaults to now end-of-day. Swapped if start > end.
Response
data.data[].id(int) — click-URL id.data.data[].url_name(string) — display name;Maps.Googleis remapped toGoogle, and(Follow-up)is appended when the URL is a follow-up link.data.data[].is_follow_up(bool).data.data[].placeholder(string) — template placeholder token.data.data[].destination_url(string) — target URL; when empty but alanding_page_idexists it is built from the white-label URL as{white_url}/lp/{landing_page_id}?store_id={store_id}&preview=true.data.data[].click_count(int) — total click events in the window.data.data[].unique_ips(int) — distinct IPs.data.data[].last_clicked(ISO-8601 datetime, nullable) — max event time, or null if never clicked.
200 Success · 200
200{
"data": {
"status": "success",
"data": [
{
"id": 45,
"url_name": "Google",
"is_follow_up": false,
"placeholder": "directTo_google",
"destination_url": "https://maps.google.com/...",
"click_count": 25,
"unique_ips": 20,
"last_clicked": "2026-06-15T10:30:00.000000Z"
}
]
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
404 | No record matches the id you sent |
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/email/click-urls" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 8 days ago
Did this page help you?
