---
title: "Обновить рассылку"
method: PATCH
path: "/v1/public/campaigns/{campaignId}"
tags: ["Рассылки"]
---

# Обновить рассылку

`PATCH /v1/public/campaigns/{campaignId}`

## Request

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

Обновляет черновик рассылки. Редактировать можно только рассылки в статусе DRAFT; меняются только переданные в запросе поля. Для A/B (сплит) рассылок abTest.variants заменяет весь набор вариантов темы, abTest.percent задаёт тестовую долю контактов.

## Path parameters

- `campaignId` integer, required

## 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.
- `404`: Запрошенный ресурс не найден.
- `422`: Рассылка не в статусе DRAFT.
- `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)
