Перейти к основному содержимому

Конфигурация скрипта супер маркетинга

На этой странице описаны API-эндпоинты скрипта супер маркетинга. В отличие от других скриптов, кампании супер маркетинга не создаются через обобщённый эндпоинт POST /api/v1/task — они работают на основе многократно используемого датасета целей с собственными эндпоинтами.

Обзор

Кампания супер маркетинга объединяет несколько действий по росту (подписка, отписка, жалоба, личные сообщения, буст, массовые комментарии) в одном запуске по пулу целей. Пул целей хранится как датасет:

  • Тип данных — датасет хранит либо usernames (аккаунты TikTok/Instagram), либо post_links (ссылки на публикации).
  • Стратегия — управляет распределением целей по устройствам:
    • shared_pool — каждое устройство/аккаунт обрабатывает все цели.
    • consume_once — цели делятся между устройствами и каждая используется один раз.

Типичный процесс:

  1. Импорт целей в датасет → получение dataset_id.
  2. Запуск кампании, ссылающейся на dataset_id, на одном или нескольких устройствах.

Переключатели функций (подписка / ЛС / комментарии и т.д.) и их настройки считываются из сохранённой конфигурации (super_marketing_settings.json). Вы можете переопределить любые параметры для конкретного запуска, передав script_config в запросе.

Требование лицензии

Все эндпоинты супер маркетинга требуют план Pro, Team или Business, как и остальное локальное API.


Импорт датасета

Создать новый датасет или добавить цели в существующий.

  • Эндпоинт: POST /api/v1/super-marketing/dataset

Тело запроса

ПолеТипОбязательныйПо умолчаниюОписание
dataset_idintegerNoID существующего датасета для добавления/замены. Пропустите или используйте 0 для создания нового.
data_typestringYesusernames или post_links
strategystringYesshared_pool или consume_once
entriesstring[]Yes*[]Цели в виде JSON-массива. Приоритет над raw_text.
raw_textstringYes*Цели в виде строки с переносами (альтернатива entries).
modestringNoappendappend — добавить к существующим; replace — сначала очистить.
labelstringNoНеобязательная метка для датасета.
примечание

Передайте цели через один из вариантов: entries или raw_text. Дубликаты и пустые записи игнорируются. Один импорт ограничен 100 000 записей.

Пример

curl -X POST http://localhost:50809/api/v1/super-marketing/dataset \
-H "Content-Type: application/json" \
-d '{
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Цели кампании A",
"entries": ["@user_one", "@user_two", "@user_three"]
}'

Добавить цели в существующий датасет:

curl -X POST http://localhost:50809/api/v1/super-marketing/dataset \
-H "Content-Type: application/json" \
-d '{
"dataset_id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"mode": "append",
"raw_text": "@user_four\n@user_five\n@user_six"
}'

Пример ответа

{
"code": 0,
"message": "success",
"data": {
"dataset": {
"stats": {
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Цели кампании A",
"total": 3,
"consumed": 0,
"remaining": 3,
"created_at": "2026-06-22 09:00:00",
"updated_at": "2026-06-22 09:00:00"
},
"entries": [
{ "id": 1, "value": "@user_one", "consumed": false, "consumed_by": null, "consumed_at": null, "created_at": "2026-06-22 09:00:00", "updated_at": "2026-06-22 09:00:00" }
]
},
"summary": {
"inserted": 3,
"duplicates": 0,
"skipped_empty": 0,
"removed": 0,
"truncated": 0
}
}
}

Список датасетов

Получить все датасеты со статистикой использования.

  • Эндпоинт: GET /api/v1/super-marketing/datasets

Параметры запроса

ПараметрТипПо умолчаниюОписание
data_typestringНеобязательный фильтр: usernames или post_links

Пример

curl "http://localhost:50809/api/v1/super-marketing/datasets?data_type=usernames"

Пример ответа

{
"code": 0,
"message": "success",
"data": [
{
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Цели кампании A",
"total": 6,
"consumed": 0,
"remaining": 6,
"created_at": "2026-06-22 09:00:00",
"updated_at": "2026-06-22 09:05:00"
}
]
}

Получить датасет

Получить статистику датасета и страницу его записей.

  • Эндпоинт: GET /api/v1/super-marketing/dataset/{id}

Параметры запроса

ПараметрТипПо умолчаниюОписание
limitinteger50Записей на страницу (макс. 500)
offsetinteger0Количество пропускаемых записей

Пример

curl "http://localhost:50809/api/v1/super-marketing/dataset/7?limit=100&offset=0"

Очистить датасет

Удалить все записи из датасета. Сама запись датасета сохраняется (и dataset_id остаётся действительным для будущих импортов).

  • Эндпоинт: DELETE /api/v1/super-marketing/dataset/{id}

Пример

curl -X DELETE http://localhost:50809/api/v1/super-marketing/dataset/7

Пример ответа

{
"code": 0,
"message": "success",
"data": { "cleared": true, "dataset_id": 7 }
}

Запуск кампании

Запустить кампанию супер маркетинга на заданных устройствах, используя цели из датасета.

  • Эндпоинт: POST /api/v1/super-marketing/run

Тело запроса

ПолеТипОбязательныйПо умолчаниюОписание
serialsstring[]Yes[]Серийные номера устройств
dataset_idintegerYesДатасет с целями кампании
enable_multi_accountbooleanNofalseСоздать задачу для каждого аккаунта на устройстве
merge_same_username_tasksbooleanNofalseОбъединить все цели устройства в одну задачу
platformstringNoПлатформа (tiktok / instagram). Применяется только в мультиплатформенных сборках
min_intervalintegerNo0Минимальный интервал в минутах между задачами
max_intervalintegerNo0Максимальный интервал в минутах между задачами
start_timestringNoВремя начала первой задачи в формате HH:MM
rotate_proxybooleanNofalseСменить прокси устройства перед запуском
switch_account_methodstringNoМетод переключения аккаунтов в мультиаккаунт режиме
official_packagesstring[]No[]Ограничить выполнение этими официальными пакетами
clone_package_prefixstringNoОграничить выполнение клонами с этим префиксом пакета
script_configobjectNoПереключатели функций / настройки, переопределяющие конфигурацию из приложения (см. ниже)
Тип данных берётся из датасета

В запросе не нужно передавать data_source_type — кампания автоматически использует data_type датасета (usernames или post_links). Датасеты с ссылками поддерживают только функции boost_posts и mass_comment.

Переопределения script_config

script_config необязателен. При отсутствии кампания использует переключатели и настройки из приложения. Передайте его для запуска полностью автономной кампании или переопределения конкретных полей. Ключи принимаются в camelCase и snake_case.

ПолеТипОписание
access_methodstringСпособ доступа к целям: search или direct
features.follow_usersbooleanПодписаться на каждую цель
features.unfollow_usersbooleanОтписаться от каждой цели
features.report_accountbooleanПожаловаться на аккаунт цели
features.send_dmbooleanОтправить личное сообщение каждой цели
features.boost_postsbooleanЛайк / избранное / репост / поделиться публикациями цели
features.mass_commentbooleanКомментировать публикации цели
follow_settings.boost_typestringfollow или unfollow
dm_settings.message_contentsstringТекст ЛС (несколько вариантов через перенос строки)
dm_settings.message_orderstringrandom или sequential
dm_settings.insert_emojibooleanВставить случайный эмодзи в ЛС
dm_settings.generate_by_chatgptbooleanГенерировать ЛС через ChatGPT
dm_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
post_settings.skip_posts_countintegerПубликации для пропуска перед действиями (0–8, только username)
post_settings.max_posts_countintegerМакс. публикаций для обработки на цель
post_settings.enable_likebooleanЛайкнуть публикации
post_settings.enable_favoritebooleanДобавить публикации в избранное
post_settings.enable_repostbooleanРепостить публикации
post_settings.enable_sharebooleanПоделиться публикациями
post_settings.repeat_timesintegerКоличество повторений действий
post_settings.view_durationsinteger[][min, max] секунд просмотра каждой публикации
comment_settings.comment_contentstringТекст комментария (несколько вариантов через перенос)
comment_settings.comment_orderstringrandom или sequential
comment_settings.insert_emojibooleanВставить случайный эмодзи в комментарий
comment_settings.generate_by_chatgptbooleanГенерировать комментарий через ChatGPT
comment_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
task_finish_wait_timeintegerСекунды ожидания перед завершением (предотвращает потерю данных)

Примеры

Минимальный запуск (использовать настройки из приложения)

curl -X POST http://localhost:50809/api/v1/super-marketing/run \
-H "Content-Type: application/json" \
-d '{
"serials": ["device_serial_1", "device_serial_2"],
"dataset_id": 7
}'

Автономная кампания подписки + ЛС

curl -X POST http://localhost:50809/api/v1/super-marketing/run \
-H "Content-Type: application/json" \
-d '{
"serials": ["device_serial_1"],
"dataset_id": 7,
"enable_multi_account": true,
"min_interval": 1,
"max_interval": 3,
"script_config": {
"access_method": "search",
"features": {
"follow_users": true,
"send_dm": true
},
"follow_settings": { "boost_type": "follow" },
"dm_settings": {
"message_contents": "Привет! Мне нравится ваш контент 🙌\nОтличные посты, продолжайте!",
"message_order": "random",
"insert_emoji": true
}
}
}'

Массовые комментарии на датасете из ссылок

curl -X POST http://localhost:50809/api/v1/super-marketing/run \
-H "Content-Type: application/json" \
-d '{
"serials": ["device_serial_1"],
"dataset_id": 9,
"merge_same_username_tasks": true,
"script_config": {
"features": { "mass_comment": true },
"comment_settings": {
"comment_content": "🔥🔥🔥\nОтлично!\nЛюблю это",
"comment_order": "random"
}
}
}'

Пример ответа

{
"code": 0,
"message": "success",
"data": { "created_count": 6 }
}

created_count — количество созданных задач. Затем ожидающие задачи выполняются на назначенных устройствах — отслеживайте через API управления задачами.


Ошибки

HTTP StatusCodeОписание
40040001Неверные параметры (неверный data_type/strategy, пустой serials, невалидный dataset_id, не-объект script_config, или задачи не созданы)
40340301Запрещено — требуется план Pro+
40440401Датасет не найден
50050001Внутренняя ошибка сервера
Задачи не созданы

Если запуск возвращает код 40001 с сообщением "No tasks created", проверьте, что у датасета ещё остались цели (для стратегии consume_once) и выбранные устройства онлайн.

См. также