---
title: "Превью распределения контактов A/B-теста"
method: GET
path: "/v1/public/campaigns/{campaignId}/ab-test/preview"
tags: ["Рассылки"]
---

# Превью распределения контактов A/B-теста

`GET /v1/public/campaigns/{campaignId}/ab-test/preview`

## Request

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

Рассчитывает, как контакты рассылки разделятся при заданном проценте теста: количество контактов на каждый вариант и доля, которая получит вариант-победитель. Только чтение, рассылка не изменяется — помогает подобрать подходящий abTest.percent перед его сохранением через обновление рассылки.

## Path parameters

- `campaignId` integer, required

## Query parameters

- `percent` number

## Response `200`

Превью распределения контактов A/B-теста.

- object
  - `ok` boolean, required: Флаг успешного выполнения.
  - `data` object, required: Полезная нагрузка успешного ответа.
    - `totalContacts` number, required: Общее количество активных контактов рассылки.
    - `percent` number, required: Процент теста, для которого рассчитано превью.
    - `variantsCount` number, required: Количество тестовых вариантов.
    - `perVariant` CampaignAbTestAudienceShareDto, required
      - `count` number, required: Количество контактов в этой доле.
      - `percent` number, required: Доля от всех контактов рассылки, процент.
    - `winnerAudience` CampaignAbTestAudienceShareDto, required
      - `count` number, required: Количество контактов в этой доле.
      - `percent` number, required: Доля от всех контактов рассылки, процент.
    - `warning` string: Неблокирующее предупреждение, например слишком мало контактов на вариант — тест может быть статистически нерелевантным.
    - `error` string: Блокирующая ошибка: рассылку нельзя запустить с этим процентом.
    - `allowedMinPercent` number: Минимальный процент, дающий хотя бы один контакт на вариант. Присутствует при error.
  - `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`: Рассылка не является A/B-тестом.
- `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)
