Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

OverviewGetting startedWhat is Saasco?

SDK

Quick startTrackingIdentifyConfigurationWidgetsProperties

MCP

Quick startHow it worksAuthorizationTool reference

REST API

Quick start
Set up Email MarketingDraft a campaign
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
Set up a workflow
Email MarketingCampaigns

Get Email Campaign

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://www.saasco.com/api/v2/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": 9007199254740991
  },
  "utmConfig": {
    "enabled": true,
    "params": {
      "campaign": "",
      "content": "",
      "medium": "",
      "source": "",
      "term": ""
    }
  },
  "sendCount": 0,
  "sendingTargetDurationMs": 9007199254740991,
  "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
      }
    }
  }
}
{
  "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": []
}

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.