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 Campaign

View as MarkdownAgent setup

Fetches a single campaign with its messages, audience definition, status, and send progress. Returns 404 if the campaign does not exist in this project.

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

Authorization

Authorization
AuthorizationBearer <token>

In: header

Path Parameters

projectIdrequiredstring

ID of the project that owns the campaign.

campaignIdrequiredstring

ID of the campaign to fetch.

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"
{  "id": "string",  "createdAt": "string",  "updatedAt": "string",  "projectId": "string",  "name": "string",  "status": "DRAFT",  "type": "STANDARD",  "workflowId": "string",  "workflowStepId": "string",  "sentAt": "string",  "contactListId": "string",  "contactsFilterGroups": [],  "lastSuccessContactId": "string",  "lastSuccessContactCreatedAt": "string",  "sendOrderByProperty": {    "direction": "asc",    "propertyKey": "string"  },  "abTestConfig": {    "variable": "SUBJECT",    "samplePercent": 20,    "winnerMetric": "OPEN_RATE",    "winnerWaitHours": 4,    "winnerWaitUnit": "HOURS",    "sendTimeDelayHours": 2,    "sendTimeDelayUnit": "HOURS",    "winnerMessageId": "string",    "winnerSelectedAt": "string",    "winnerRolloutAt": "string",    "winnerWaitStartedAt": "string",    "status": "AWAITING_SAMPLE",    "samplePaginationEnd": 0  },  "utmConfig": {    "enabled": true,    "params": {      "campaign": "",      "content": "",      "medium": "",      "source": "",      "term": ""    }  },  "sendCount": 0,  "sendingTargetDurationMs": 0,  "sendPaginationCount": 0,  "messages": [],  "bcc": "string",  "bodyHTML": "string",  "bodyJSON": {    "property1": null,    "property2": null  },  "cc": "string",  "fromDomain": "string",  "fromEmailUsername": "string",  "fromName": "string",  "previewTextHTML": "string",  "previewTextJSON": {    "property1": null,    "property2": null  },  "replyTo": "string",  "scheduledAt": "string",  "subjectHTML": "string",  "subjectJSON": {    "property1": null,    "property2": null  },  "text": "string",  "theme": {    "body": {      "align": "left",      "background": "string",      "container": "string"    },    "button": {      "background": "string",      "borderColor": "string",      "borderSize": 0,      "color": "string",      "radius": 0    },    "link": {      "color": "string"    },    "template": "string",    "typography": {      "h1": {        "color": "string",        "fontSize": 0,        "lineHeight": 0      },      "h2": {        "color": "string",        "fontSize": 0,        "lineHeight": 0      },      "h3": {        "color": "string",        "fontSize": 0,        "lineHeight": 0      },      "p": {        "color": "string",        "fontSize": 0,        "lineHeight": 0      }    }  }}

List Email Campaigns

Lists the project's campaigns with status and send progress. Audience, UTM, A/B config, and message bodies are omitted — fetch a campaign by id for those. Optionally narrow with `type` or `types`. Omit `take` to return every matching campaign; the dashboard passes `take` (max 100) and `after` to page.

Create Email Campaign

Creates a campaign together with its first message (subject, body, sender) in one transaction. New campaigns always start as a DRAFT. Creating one never sends anything. Define the audience with `contactListId`, `contactsFilterGroups`, or both; set `type` to `AB_TEST` and supply `abTestConfig` for a split test.