Click URL events
Overview
Get paginated individual click events for one tracked click URL (across both email and SMS requests), with per-event metadata and the associated customer/recipient data.
Prerequisites
- A bearer token. Callable with Account tokens.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/campaign/click-url/{click_url_id}/events
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Account tokens.
-
The endpoint scopes the click URL via its parent campaign, so only click URLs belonging to the caller's own company are reachable.
-
Otherwise 404
Click URL not found(the example id9999is a not-found probe).
Rate limit
- No rate limit.
Query parameters
- Path:
click_url_id(integer, required) — click-URL id (route-constrained to[0-9]+). - Query:
start_date(stringY-m-d, optional) — event window start; defaults to the click URL'screated_atstart-of-day. - Query:
end_date(stringY-m-d, optional) — window end; defaults to now end-of-day. Swapped if start > end. - Query:
page(integer, optional, min 1) — page number. - Query:
limit(integer, optional, 10–100) — page size; defaults to 20 (values below 10 are raised to 10, capped at 100).
Response
data.current_page(int),per_page(int),total(int),last_page(int).data.click_url(object) —{ id, name, placeholder, url, channel_type }.data.events(array) — each event:id(int),event(string, alwaysclick),ip(string),user_agent(string),referer(string),metadata(object, nullable),created_at(ISO-8601). When the event links an email request,customer_data={ id, email, status, sent_at (ISO/nullable), customer_name, requestor_name }. When it links an SMS request,customer_data={ id, phone_number, status, sent_at, customer_name, requestor_name };customer_datais absent when neither relation is present.
200 Success · 200
200{
"data": {
"status": "success",
"data": {
"current_page": 1,
"per_page": 20,
"total": 150,
"last_page": 8,
"click_url": {
"id": 45,
"name": "Direct to Manager",
"placeholder": "directTo_manager",
"url": "https://example.com/manager",
"channel_type": "email"
},
"events": [
{
"id": 123,
"event": "click",
"ip": "192.168.1.1",
"user_agent": "Mozilla/5.0...",
"referer": "https://gmail.com",
"metadata": null,
"created_at": "2026-06-15T10:30:00.000000Z",
"customer_data": {
"id": 88,
"email": "[email protected]",
"status": "clicked",
"sent_at": "2026-06-15T09:00:00.000000Z",
"customer_name": "Jane Doe",
"requestor_name": "Front Desk"
}
}
]
}
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
404 | No click URL matches the id (Click URL 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/click-url/<click_url_id>/events" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 8 days ago
Did this page help you?
