Рассылки
Массовые рассылки сообщений сегменту контактов по одному или нескольким каналам. Рассылка может быть черновиком (`is_draft: true`), запускаться немедленно, по расписанию или по recurring-правилу. Жизненный цикл: draft → publish → run(s); прогресс каждого запуска (run) отслеживается отдельно (sent/delivered/read/failed).
Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| GET | /v1/broadcasts/metaМетаданные конструктора рассылки (сегменты, переменные, шаблоны) | Метаданные конструктора рассылки (сегменты, переменные, шаблоны) |
| GET | /v1/broadcastsСписок рассылок (пагинация, фильтр по статусу) | Список рассылок (пагинация, фильтр по статусу) |
| GET | /v1/broadcasts/{broadcast}Получение рассылки | Получение рассылки |
| POST | /v1/broadcastsСоздание рассылки (поддерживает is_draft) | Создание рассылки (поддерживает is_draft) |
| PATCH | /v1/broadcasts/{broadcast}Обновление рассылки | Обновление рассылки |
| DELETE | /v1/broadcasts/{broadcast}Удаление рассылки | Удаление рассылки |
| POST | /v1/broadcasts/estimateОценка размера аудитории рассылки | Оценка размера аудитории рассылки |
| POST | /v1/broadcasts/{broadcast}/duplicateДублирование рассылки | Дублирование рассылки |
| POST | /v1/broadcasts/{broadcast}/publishПубликация черновика (запуск/постановка на расписание) | Публикация черновика (запуск/постановка на расписание) |
| POST | /v1/broadcasts/{broadcast}/cancelОтмена разовой рассылки | Отмена разовой рассылки |
| POST | /v1/broadcasts/{broadcast}/runРучной запуск рассылки | Ручной запуск рассылки |
| GET | /v1/broadcasts/{broadcast}/messagesПолучатели запуска (пагинация, фильтр по статусу) | Получатели запуска (пагинация, фильтр по статусу) |
| GET | /v1/broadcasts/{broadcast}/runsСписок запусков рассылки | Список запусков рассылки |
| GET | /v1/broadcasts/{broadcast}/runs/{run}Получение конкретного запуска | Получение конкретного запуска |
| POST | /v1/broadcasts/{broadcast}/pause-recurringПауза recurring-расписания | Пауза recurring-расписания |
| POST | /v1/broadcasts/{broadcast}/resume-recurringВозобновление recurring-расписания | Возобновление recurring-расписания |
Примеры
Создание и немедленный запуск рассылки
Запрос
curl -X POST https://api.aisar.app/v1/broadcasts \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "February promo",
"is_draft": false,
"audience": { "segmentId": "12" },
"channels": { "mode": "specific", "channelIds": [7] },
"content": {
"channels": [
{ "type": "text", "channelId": 7, "accountType": "whatsapp", "text": "Hi {{first_name}}, 20% off this week!" }
]
},
"schedule": { "mode": "now" }
}'Ответ
{
"data": {
"id": 88,
"company_id": 1,
"name": "February promo",
"status": "active",
"audience": {
"conditions": [],
"group_logic": "and"
},
"channels": [{ "id": 7, "mode": "specific" }],
"content": [],
"schedule": { "mode": "now", "scheduledAt": null },
"recurring_schedule": null,
"runs": [
{ "id": 201, "broadcast_id": 88, "status": "processing", "total": 340, "sent": 0, "failed": 0, "delivered": 0, "read": 0, "started_at": "2026-03-15T10:00:00.000000Z", "completed_at": null }
],
"created_at": "2026-03-15T10:00:00.000000Z",
"updated_at": "2026-03-15T10:00:00.000000Z"
}
}Оценка аудитории рассылки
Запрос
curl -X POST https://api.aisar.app/v1/broadcasts/estimate \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"segment_id": 12,
"channel_ids": [7]
}'Ответ
{
"data": {
"total_contacts": 340,
"reachable_contacts": 312,
"excluded_contacts": 28,
"estimated_duration_seconds": 312,
"estimated_completion": "2026-03-15T10:05:12.000Z"
}
}