Campaigns API
Campaigns group related triggers together. All endpoints require authentication.
Campaign object
| Field | Type | Description |
|---|---|---|
id | Int | Unique identifier (read-only) |
title | String | Campaign name |
description | String | Optional description |
is_active | Boolean | Whether the campaign is active |
max_email | Int | Maximum emails per recipient within max_email_period; 0 = unlimited |
max_email_period | Int | Period in hours for the email cap; 0 = unlimited |
created_at | String | Creation timestamp (read-only) |
updated_at | String | Last 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.