MailerGetCampaigns¶
GET mailer/campaigns/list
Returns the campaigns of the brand with their rollout progress: how many recipients were resolved, how many emails were queued, how many failed, and where the cursor stands.
queued against totalRecipients is the progress bar; cursorStage tells whether the
rollout is walking explicit ids or CRM filters.
Access Control¶
Allowed roles: admin, leader, within the brand of the caller.
Request¶
GET request
GET https://{broker_domain}/mailer/campaigns/list?limit=50&orderBy=%5B%22id%22%2C%22DESC%22%5D
Authorization: <JWT_TOKEN>
{
"command": "MailerGetCampaigns",
"extID": "1",
"data": {
"limit": 50,
"orderBy": [
"id",
"DESC"
]
}
}
const res = await platform.MailerGetCampaigns({
limit: 50,
orderBy: [
"id",
"DESC"
]
});
Request Data¶
| Field | Type | Required | Description |
|---|---|---|---|
limit |
int | No | Page size, 1..1000, default 100 |
offset |
int | No | Rows to skip |
orderBy |
array | No | Sorting, for example ["id", "DESC"] |
count |
array | No | Row count aggregate, ["id"] |
where |
object | No | Filters, see Table filter syntax |
Response Data¶
{
"rows": [
{
"id": 3,
"brand": "default",
"name": "Summer promo",
"recipientType": "CUSTOMER",
"recipientConfig": { "filters": { "country": "UA" } },
"templateId": 4,
"profileId": null,
"kind": "MARKETING",
"status": "COMPLETED",
"scheduledAt": null,
"totalRecipients": 5400,
"queued": 5388,
"failed": 12,
"cursorStage": "DONE",
"cursorOffset": 5400,
"startedAt": "2026-08-24 13:25:00",
"finishedAt": "2026-08-24 13:58:12"
}
]
}
Errors¶
| Code | Error | Description |
|---|---|---|
401 |
PERMISSION_DENIED |
Session may not read campaigns |