---
title: "Создать рассылку"
method: POST
path: "/v1/public/campaigns"
tags: ["Рассылки"]
---

# Создать рассылку

`POST /v1/public/campaigns`

## Request

- Base URL: `https://api.rusender.ru/api`
- URL: `https://api.rusender.ru/api/v1/public/campaigns`
- Auth: HTTP bearer

Создаёт email-рассылку в статусе DRAFT. При создании все поля опциональны; обязательные (шаблон, отправитель, тема, хотя бы один список контактов) проверяются при запуске. Черновик не отправляется автоматически — запустите его операцией запуска рассылки. Передайте abTest, чтобы создать A/B (сплит) рассылку: 2-10 вариантов темы тестируются на доле контактов (abTest.percent), затем вариант-победитель отправляется остальным. Досыл и отправка частями в черновике не сохраняются — они настраиваются при запуске (см. операцию запуска).

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `data` object, required: Основные данные запроса.
    - `name` string: Название рассылки. Генерируется автоматически, если не задано.
    - `subject` string: Тема письма.
    - `previewTitle` string: Прехедер письма.
    - `templateId` number: ID пользовательского шаблона письма.
    - `senderId` number: ID отправителя.
    - `senderName` string: Отображаемое имя отправителя.
    - `listIds` number[]: ID списков контактов для отправки.
    - `segmentId` number: ID пользовательского сегмента для отправки.
    - `attachments` number[]: ID пользовательских файлов для вложения (не более 20).
    - `utm` CampaignUtmDto
      - `utm_source` string: Query-параметр utm_source, добавляемый ко всем ссылкам письма (источник трафика, например «newsletter»).
      - `utm_medium` string: Query-параметр utm_medium, добавляемый ко всем ссылкам письма (канал трафика, например «email»).
      - `utm_campaign` string: Query-параметр utm_campaign, добавляемый ко всем ссылкам письма (идентификатор кампании).
    - `abTest` CampaignAbTestDto
      - `type` 'subject': Тип A/B-эксперимента. Поддерживается только 'subject': варианты тестируют разные темы письма. Опционально; по умолчанию 'subject'.
      - `variants` CampaignAbTestVariantDto[], required: Варианты темы для теста (2-10). Каждый вариант получает равную долю тестовых контактов.
        - `subject` string, required: Тема письма варианта.
        - `previewTitle` string: Прехедер письма варианта.
      - `percent` number: Доля контактов (1-99%) для тестирования вариантов; остальные получают вариант-победитель. Должна быть задана до запуска рассылки. Подберите значение через операцию превью A/B-теста, чтобы на каждый вариант хватало контактов.
  - `meta` PublicApiRequestMetaDto
    - `requestId` string: Client-provided request ID для корреляции.

## Response `200`

Созданная рассылка.

- object
  - `ok` boolean, required: Флаг успешного выполнения.
  - `data` object, required: Полезная нагрузка успешного ответа.
    - `id` number, required: Идентификатор рассылки.
    - `name` string, required: Название рассылки.
    - `subject` string: Тема письма.
    - `previewTitle` string: Preview-текст письма.
    - `type` 'regular' | 'ab_basic' | 'ab_variant' | 'follow_up_basic' | 'follow_up' | 'chunked', required: Тип рассылки.
    - `status` 'draft' | 'built' | 'scheduled' | 'in_progress' | 'paused' | 'completed' | 'banned' | 'on_hold', required: Статус рассылки.
    - `statusModerate` 'not_ready_to_moderate' | 'ready_to_moderate' | 'moderating' | 'approved' | 'banned' | 'paused', required: Статус модерации рассылки.
    - `folderId` object: ID папки, в которой лежит рассылка. null — если не в папке.
    - `isArchived` boolean, required: Находится ли рассылка в архиве.
    - `dashboardUrl` string, required: Прямая ссылка на рассылку в дашборде
    - `attachments` CampaignAttachmentDto[], required: Вложения письма рассылки.
      - `id` number, required: Идентификатор вложения.
      - `fileName` string, required: Имя файла вложения.
      - `size` number, required: Размер файла в байтах.
    - `templateId` number: ID шаблона, используемого в рассылке.
    - `senderId` number: ID email-отправителя.
    - `senderEmail` string: Email адрес отправителя.
    - `senderName` string: Имя отправителя.
    - `lists` CampaignListReferenceDto[], required: Списки контактов, на которые идёт рассылка.
      - `id` number, required: ID списка контактов.
      - `name` string, required: Название списка контактов.
    - `utm` CampaignUtmDto
      - `utm_source` string: Query-параметр utm_source, добавляемый ко всем ссылкам письма (источник трафика, например «newsletter»).
      - `utm_medium` string: Query-параметр utm_medium, добавляемый ко всем ссылкам письма (канал трафика, например «email»).
      - `utm_campaign` string: Query-параметр utm_campaign, добавляемый ко всем ссылкам письма (идентификатор кампании).
    - `scheduledAt` object: Запланированное время старта рассылки (ISO 8601).
    - `startedAt` object: Фактическое время начала рассылки (ISO 8601).
    - `finishedAt` object: Время завершения рассылки (ISO 8601).
    - `createdAt` object: Время создания рассылки (ISO 8601).
    - `updatedAt` object: Время последнего обновления рассылки (ISO 8601).
    - `stats` CampaignStatsDto
      - `total` number, required: Общее количество адресов в рассылке.
      - `sending` CampaignStatMetricDto, required
        - `count` number, required: Абсолютное количество.
        - `rate` number, required: Значение в процентах.
      - `delivered` CampaignStatMetricDto, required
        - `count` number, required: Абсолютное количество.
        - `rate` number, required: Значение в процентах.
      - `open` CampaignStatMetricDto, required
        - `count` number, required: Абсолютное количество.
        - `rate` number, required: Значение в процентах.
      - `click` CampaignStatMetricDto, required
        - `count` number, required: Абсолютное количество.
        - `rate` number, required: Значение в процентах.
      - `error` CampaignStatMetricDto, required
        - `count` number, required: Абсолютное количество.
        - `rate` number, required: Значение в процентах.
      - `unsubscribe` CampaignStatMetricDto, required
        - `count` number, required: Абсолютное количество.
        - `rate` number, required: Значение в процентах.
      - `complaint` CampaignStatMetricDto, required
        - `count` number, required: Абсолютное количество.
        - `rate` number, required: Значение в процентах.
  - `meta` PublicApiResponseMetaDto, required
    - `requestId` string, required: Итоговый идентификатор запроса, использованный сервером.
    - `timestamp` string, required: Время формирования ответа в формате ISO-8601.
    - `pagination` PublicApiPaginationMetaDto
      - `page` number, required: Текущая страница.
      - `limit` number, required: Количество элементов на странице.
      - `totalItems` number, required: Общее количество элементов.
      - `totalPages` number, required: Общее количество страниц.

## Other responses

- `400`: Некорректный запрос.
- `401`: Требуется валидный токен Public API.
- `403`: Для вызова endpoint не хватает требуемого scope.
- `422`: Запрос синтаксически корректен, но не может быть обработан.
- `429`: Превышен rate limit для текущего API key.
- `500`: Внутренняя ошибка сервера.

---

[API](https://skmtc.dev/rusender/apis/public-api.md) · [All operations](https://skmtc.dev/rusender/apis/public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rusender/apis/public-api/revisions/8e86bca789ea?raw)
