List Email Campaigns
Lists the project's campaigns with their messages, status, and send progress. Optionally narrow to one kind with type. This is unpaginated and returns every campaign in the project.
Authorization
Authorization In: header
Path Parameters
ID of the project to list campaigns for.
Query Parameters
Return only campaigns of this kind: STANDARD for a one-off broadcast, AUTOMATION for a triggered send, AB_TEST for a split test. Omit for all three.
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"[
{
"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": []
}Update Clean Settings
Replaces the project's list-hygiene settings. Unlike most update endpoints here, `settings` is written whole rather than merged, so send the complete object. Enabling automatic validation applies to contacts created from then on; it does not retroactively validate existing ones.
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.