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 EmailsgetGet EmailgetList Contact EmailsgetGet Email Events
Email MarketingEmails

List Emails

View as MarkdownAgent setup

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.

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

Authorization

Authorization
AuthorizationBearer <token>

In: header

Path Parameters

projectIdrequiredstring

ID of the project that owns the campaign.

campaignIdrequiredstring

ID of the campaign whose emails to list.

Query Parameters

dateFromstring

Only include emails sent on or after this YYYY-MM-DD date.

dateTostring

Only include emails sent on or before this YYYY-MM-DD date.

messageIdstring

Only include emails sent from this campaign message, one A/B variant, for example.

sendPhasestring

For A/B campaigns, restrict to one phase: sample for the initial test split, rollout for the winning variant sent to the remaining audience.

Value in: "sample" | "rollout"
skipnumber

Number of emails to skip before collecting results.

sortBystring

Field to sort by, e.g. sentAt or lastEventAt.

Value in: "sentAt" | "deliveredAt" | "openedAt" | "clickedAt" | "bouncedAt" | "suppressedAt" | "to" | "status" | "lastEventAt"
sortOrderstring

Sort direction.

Value in: "asc" | "desc"
statusstring

Only include emails currently in this delivery state, e.g. bounced or opened.

Value in: "pending" | "sent" | "delivered" | "opened" | "clicked" | "bounced" | "complained" | "suppressed" | "deliveryDelayed"
takenumber

Maximum number of emails to return.

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/emails"
{  "emails": [    {      "id": "string",      "createdAt": "string",      "updatedAt": "string",      "projectId": "string",      "emailCampaignId": "string",      "messageId": "string",      "distinctId": "string",      "to": "string",      "contactDistinctId": "string",      "subject": "string",      "lastEventAt": "string",      "sent": true,      "sentAt": "string",      "delivered": true,      "deliveredAt": "string",      "opened": true,      "openedAt": "string",      "clicked": true,      "clickedAt": "string",      "bounced": true,      "bouncedAt": "string",      "complained": true,      "complainedAt": "string",      "suppressed": true,      "suppressedAt": "string",      "sendPhase": "sample",      "status": "pending"    }  ],  "total": 0}

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.

Get Email

Fetches one sent email (its recipient, status, and delivery timestamps) together with the rendered subject and body as that recipient actually received it, personalisation included. The content is fetched from the email provider, so this is heavier than the row returned by List Emails.