Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

Quick StartWhat is Saasco?

Analytics

CRM

Email Marketing

getList Email CampaignsgetGet Email CampaignpostCreate Email CampaignputUpdate Email CampaignpostDuplicate Email CampaigndelDelete Email CampaignpostSend Email CampaignpostResume Sending Email CampaignpostStop Sending Email CampaignpostSend Test EmailgetCount Campaign EmailsgetGet Email Stats

Knowledge

Support

Projects

Campaigns

Get Email Stats

Aggregate delivery and engagement figures for one campaign: sent, delivered, opened, clicked, bounced, complained, and delivery-delayed. Each comes back as a raw total, a unique count that collapses repeat events from the same recipient, and a rate, so open rate is not just opens divided by sends. For the per-recipient breakdown behind these numbers use List Emails.

GET
/projects/{projectId}/email-campaigns/{campaignId}/stats

Authorization

Authorization
AuthorizationBearer <token>

In: header

Path Parameters

projectIdrequiredstring

ID of the project that owns the campaign.

campaignIdrequiredstring

ID of the campaign to report on.

Query Parameters

dateFromstring

Only count events on or after this YYYY-MM-DD date. Omit for the campaign's whole lifetime.

dateTostring

Only count events on or before this YYYY-MM-DD date.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.saasco.com/api/v2/projects/string/email-campaigns/string/stats"
{
  "bounced": {
    "rate": 0,
    "total": 0,
    "unique": 0
  },
  "clicked": {
    "rate": 0,
    "total": 0,
    "unique": 0
  },
  "complained": {
    "rate": 0,
    "total": 0,
    "unique": 0
  },
  "delivered": {
    "rate": 0,
    "total": 0,
    "unique": 0
  },
  "deliveryDelayed": {
    "rate": 0,
    "total": 0,
    "unique": 0
  },
  "opened": {
    "rate": 0,
    "total": 0,
    "unique": 0
  },
  "sent": {
    "rate": 0,
    "total": 0,
    "unique": 0
  }
}
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}

Count Campaign Emails

How many emails the campaign covers. The meaning shifts with campaign state: while it is still SENDING this is a live count of contacts currently matching the audience, so it can move between calls as contacts subscribe or unsubscribe. In every other state it counts the Email rows actually created. Treat it as a projection before the send finishes and a fact afterwards.

List Emails

The per-recipient send log for one campaign: who it went to, current status, and delivery timestamps. Paginated, and returns `total` alongside the rows so you can page without a second call. Filter by `status` to answer questions like "who bounced", or by `messageId` / `sendPhase` to isolate one side of an A/B test.