Get transactional campaign report
Returns aggregated transactional campaign report data for sent, opens, clicks, bounces, unsubscribes, and spam complaints.
Endpoint
Section titled “Endpoint”HTTP method: GET
https://api.sender.net/v2/transactional/{id}/report?from=2025-07-01&to=2025-07-31&period=day
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
id | string required | Transactional campaign ID. |
from | string required | Start date in YYYY-MM-DD format. |
to | string required | End date in YYYY-MM-DD format. |
period | string required | Aggregation period. One of: day, week, month, year. |
Request Examples
Section titled “Request Examples”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));$client = new \GuzzleHttp\Client();$response = $client->get( 'https://api.sender.net/v2/transactional/{id}/report?from=2025-07-01&to=2025-07-31&period=day', [ 'headers' => [ 'Authorization' => 'Bearer [your-token]', 'Content-Type' => 'application/json', 'Accept' => 'application/json', ], ]);
$body = $response->getBody()->getContents();$data = json_decode($body, true);print_r($data);import requestsimport json
url = "https://api.sender.net/v2/transactional/{id}/report?from=2025-07-01&to=2025-07-31&period=day"
headers = { "Authorization": "Bearer [your-token]", "Content-Type": "application/json", "Accept": "application/json",}
response = requests.request('GET', url, headers=headers)
print(response.json())curl -X GET \-G "https://api.sender.net/v2/transactional/{id}/report?from=2025-07-01&to=2025-07-31&period=day" \-H "Authorization: Bearer [your-token]" \-H "Content-Type: application/json" \-H "Accept: application/json"Response
Section titled “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 }}