Skip to content

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
  }
}