Analytics

Campaign analytics

Aggregate engagement for one campaign. Ask for extra breakdowns with breakdown=smtp,sequence,bounce – each is an extra query, so request only what you will read.

Requires one of the following scopes: metrics:read, all:read, all:all.

get/v1/campaigns/{id}/analytics

Request

  • Base URL: https://api.mailbeast.ai
  • URL: https://api.mailbeast.ai/v1/campaigns/{id}/analytics
  • Auth: HTTP bearer

Path parameters

idstring required
Example:c1a2b3d4-...

Campaign id.

Query parameters

startDatestring
Example:2026-06-01T00:00:00Z

Start of the reporting window (ISO-8601). ⚠️ Reporting is by whole calendar day in your workspace timezone – the time component is ignored, so this date counts from the START of that day.

endDatestring
Example:2026-06-30T23:59:59Z

End of the reporting window (ISO-8601). Defaults to now. ⚠️ Inclusive and by whole calendar day (time component ignored) – this counts through the END of that day in your workspace timezone.

excludeOOOboolean
Example:true

Exclude out-of-office auto-replies from reply counts and reply rate. Mirrors the dashboard toggle.

breakdownstring[]

Extra breakdowns to include. Repeat the param or pass a comma-separated list. Each one costs an extra query, so ask only for what you will read.

[
  "sequence",
  "bounce"
]

Response

campaignIdstring required

Example response

{
  "campaignId": "c1a2b3d4-...",
  "period": {
    "start": "2026-06-01T00:00:00.000Z",
    "end": "2026-06-30T23:59:59.000Z",
    "retentionDays": 90
  },
  "totals": {
    "sent": 1200,
    "failed": 8,
    "delivered": 1186,
    "leadsContacted": 640,
    "opens": {
      "total": 240,
      "uniqueLeads": 180
    },
    "clicks": {
      "total": 240,
      "uniqueLeads": 180
    },
    "replies": 26,
    "bounces": 14,
    "unsubscribed": 5,
    "positiveLeads": 21,
    "conversions": 6,
    "conversionValue": 18000,
    "rates": {
      "open": 42.5,
      "click": 8.1,
      "reply": 4.2,
      "bounce": 1.9,
      "delivery": 98.1,
      "unsubscribe": 0.4,
      "conversion": 2
    }
  },
  "bySmtp": [
    {
      "accountId": "a7f1c2d4-...",
      "email": "outreach@acme.com",
      "totals": {
        "sent": 400,
        "delivered": 396,
        "opens": {
          "total": 240,
          "uniqueLeads": 180
        },
        "clicks": {
          "total": 240,
          "uniqueLeads": 180
        },
        "replies": 12,
        "bounces": 4,
        "positiveLeads": 3,
        "conversions": 2,
        "conversionValue": 6000,
        "rates": {
          "open": 42.5,
          "click": 8.1,
          "reply": 4.2,
          "bounce": 1.9,
          "delivery": 98.1,
          "positive": 41.7,
          "conversion": 1.5
        }
      }
    }
  ],
  "bySequence": [
    {
      "step": 1,
      "variant": "A",
      "totals": {
        "sent": 400,
        "delivered": 396,
        "opens": {
          "total": 240,
          "uniqueLeads": 180
        },
        "clicks": {
          "total": 240,
          "uniqueLeads": 180
        },
        "replies": 12,
        "bounces": 4,
        "positiveLeads": 3,
        "conversions": 2,
        "conversionValue": 6000,
        "rates": {
          "open": 42.5,
          "click": 8.1,
          "reply": 4.2,
          "bounce": 1.9,
          "delivery": 98.1,
          "positive": 41.7,
          "conversion": 1.5
        }
      }
    }
  ],
  "bounceBreakdown": {
    "total": 14,
    "hard": 9,
    "soft": 5,
    "senderBounces": 3,
    "recipientBounces": 11,
    "byCategory": [
      {
        "category": "invalid-mailbox",
        "label": "Invalid mailbox",
        "type": "recipient",
        "count": 9,
        "percentage": 64.3
      }
    ]
  }
}

Changes