Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

OverviewGetting startedAgent setupWhat is Saasco?

SDK

Quick startTrackingIdentifyConfigurationWidgetsProperties

MCP

Quick startHow it worksAuthorizationTool reference
Skills for agents

REST API

Quick start
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 StatsputUpdate Campaign Message
Email MarketingCampaigns

Get Email Stats

View as MarkdownAgent setup

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://example.com/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  }}

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.

Update Campaign Message

Updates one campaign message's sender or content. Read Get Email Campaign for messages[].id, then pass campaignId, messageId, and changes. Supports STANDARD, AUTOMATION, and AB_TEST campaigns while DRAFT or PAUSED; omitted fields are unchanged. Use this endpoint to set fromEmailUsername, fromName, and fromDomain on workflow emails. Use Update Email Campaign for workflowId and workflowStepId links.