Skip to content

Get transactional campaign report

Returns aggregated transactional campaign report data for sent, opens, clicks, bounces, unsubscribes, and spam complaints.

HTTP method: GET

https://api.sender.net/v2/transactional/{id}/report?from=2025-07-01&to=2025-07-31&period=day


ParameterTypeDescription
idstring requiredTransactional campaign ID.
fromstring requiredStart date in YYYY-MM-DD format.
tostring requiredEnd date in YYYY-MM-DD format.
periodstring requiredAggregation period. One of: day, week, month, year.

const url = new URL("https://api.sender.net/v2/transactional/{id}/report?from=2025-07-01&to=2025-07-31&period=day");
let headers = {
"Authorization": "Bearer [your-token]",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

Example Response
{
"sent": [
{
"date": {
"from": "2025-07-24",
"to": "2025-07-24"
},
"count": 10
}
],
"opens": [
{
"date": {
"from": "2025-07-24",
"to": "2025-07-24"
},
"count": 7
}
],
"clicks": [
{
"date": {
"from": "2025-07-24",
"to": "2025-07-24"
},
"count": 3
}
],
"bounces": [
{
"date": {
"from": "2025-07-24",
"to": "2025-07-24"
},
"count": 1
}
],
"soft_bounces": [
{
"date": {
"from": "2025-07-24",
"to": "2025-07-24"
},
"count": 0
}
],
"hard_bounces": [
{
"date": {
"from": "2025-07-24",
"to": "2025-07-24"
},
"count": 1
}
],
"unsubscribes": [
{
"date": {
"from": "2025-07-24",
"to": "2025-07-24"
},
"count": 0
}
],
"complaints": [
{
"date": {
"from": "2025-07-24",
"to": "2025-07-24"
},
"count": 0
}
],
"totals": {
"sent_total": 10,
"opens_total": 7,
"clicks_total": 3,
"bounces_total": 1,
"soft_bounces_total": 0,
"hard_bounces_total": 1,
"unsubscribes_total": 0,
"complaints_total": 0
}
}