Campaign — Stats¶
Retrieve campaign statistics.
Endpoint¶
| Method | URL |
|---|---|
GET |
/campaign/<campaign>/stats/<event> |
Where <event> is one of: delivered, bounced, opened, clicked, unsubscribed, link_clicked
Note
sent is not a valid event and returns HTTP 404. Use delivered plus bounced to
account for all messages that left the queue.
Events are returned in ascending timestamp order. The collection is paginated with the
page and pagesize query parameters (pagesize range [10, 100], default 10); there is
no server-side date filter on campaign events.
GET /campaign/<campaign>/stats/<event>¶
Payload: No payload.
Returns: A statistics dictionary.
Example:
curl -u "username:api_key" -H "Accept: application/json" \
https://app.duo.pt/campaign/{campaign_id}/stats/opened
Response:
{
"success": true,
"data": {
"campaign": {
"id": 1,
"owner": 1,
"list": 1,
"name": "Summer Newsletter 2026",
"domain": 1,
"segments": [],
"recipients": null,
"state": "DRAFT",
"when": {
"date": "2026-06-22 21:54:05.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"event_callback": null
},
"events": [],
"page": 1,
"pageSize": 10,
"pageCount": 0
}
}