Skip to main content

Campaigns API

Campaigns group related triggers together. All endpoints require authentication.

Campaign object

FieldTypeDescription
idIntUnique identifier (read-only)
titleStringCampaign name
descriptionStringOptional description
is_activeBooleanWhether the campaign is active
max_emailIntMaximum emails per recipient within max_email_period; 0 = unlimited
max_email_periodIntPeriod in hours for the email cap; 0 = unlimited
created_atStringCreation timestamp (read-only)
updated_atStringLast update timestamp (read-only)

max_email_period uses hours: 24 = 1 day, 168 = 7 days.

List campaigns

GET /rest/V1/mst-email/campaigns

Supports filtering and pagination.

Get campaign

GET /rest/V1/mst-email/campaigns/:id

Response:

{
"id": 1,
"title": "Abandoned Cart Recovery",
"description": "",
"is_active": true,
"max_email": 3,
"max_email_period": 168,
"created_at": "2026-01-10 09:00:00",
"updated_at": "2026-05-20 14:30:00"
}

Errors: 404 campaign not found.

Create campaign

POST /rest/V1/mst-email/campaigns

Request body:

{
"campaign": {
"title": "Post-Purchase Follow-Up",
"description": "",
"is_active": true,
"max_email": 0,
"max_email_period": 0
}
}

Response: the created campaign object with id assigned.

Update campaign

PUT /rest/V1/mst-email/campaigns/:id

PUT is a partial update — send only the fields you want to change; omitted fields retain their current values.

Request body: same structure as Create campaign.

Response: the updated campaign object.

Errors: 404 campaign not found.

Delete campaign

DELETE /rest/V1/mst-email/campaigns/:id

Response:

true

Errors: 404 campaign not found.

Duplicate campaign

Copies the campaign along with all its triggers and chains.

POST /rest/V1/mst-email/campaigns/:id/duplicate

No request body required.

Response: the newly created campaign object.

Errors: 404 source campaign not found.