Конфигурация скрипта супер маркетинга
На этой странице описаны API-эндпоинты скрипта супер маркетинга. В отличие от других скриптов, кампании супер маркетинга не создаются через обобщённый эндпоинт POST /api/v1/task — о ни работают на основе многократно используемого датасета целей с собственными эндпоинтами.
Обзор
Кампания супер маркетинга объединяет несколько действий по росту (подписка, отписка, жалоба, личные сообщения, буст, массовые комментарии) в одном запуске по пулу целей. Пул целей хранится как датасет:
- Тип данных — датасет хранит либо
usernames(аккаунты TikTok/Instagram/Threads), либоpost_links(ссылки на публикации). - Стратегия — управляет распределением целей по устройствам:
shared_pool— каждое устройство/аккаунт обрабатывает все цели.consume_once— цели делятся между устройствами и каждая используется один раз.
Типичный процесс:
- Импорт целей в датасет → получение
dataset_id. - Запуск кампании, ссылающейся на
dataset_id, на одном или нескольких устройствах.
Переключатели функций (подписка / ЛС / комментарии и т.д.) и их настройки считываются из сохранённой конфигурации (super_marketing_settings.json). Вы можете переопределить любые параметры для конкретного запуска, передав script_config в запросе.
Threads поддерживает навигацию по профилям, подписки/отписки, личные сообщения там, где цель показывает кнопку Message, просмотр/лайк/сохранение/репост постов и комментарии. Поделиться пропускается, потому что Threads не имеет эквивалентного рабочего процесса обмена SMS. Жалобы на аккаунт целенаправленно пропускаются, потому что Threads требует выбранную вручную причину жалобы, которую фиксированный путь автоматизации не поддерживает.
Все эндпоинты супер маркетинга требуют план Pro, Team или Business, как и остальное локальное API.
Импорт датасета
Создать новый датасет или добавить цели в существующий.
- Эндпоинт:
POST /api/v1/super-marketing/dataset
Тело запроса
| Поле | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
| dataset_id | integer | No | — | ID существующего датасета для добавления/замены. Пропустите или используйте 0 для создания нового. |
| data_type | string | Yes | — | usernames или post_links |
| strategy | string | Yes | — | shared_pool или consume_once |
| entries | string[] | Yes* | [] | Цели в виде JSON-массива. Приоритет над raw_text. |
| raw_text | string | Yes* | — | Цели в виде строки с переносами (альтернатива entries). |
| mode | string | No | append | append — добавить к существующим; replace — сначала очистить. |
| label | string | No | — | Необязательная метка для датасета. |
Передайте цели через один из вариантов: 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_type | string | — | Необязательный фильтр: 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}
Параметры запроса
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| limit | integer | 50 | Записей на страницу (макс. 500) |
| offset | integer | 0 | Количество пропускаемых записей |
Пример
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
Тело запроса
| Поле | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
| serials | string[] | Yes | [] | Серийные номера устройств |
| dataset_id | integer | Yes | — | Датасет с целями кампании |
| enable_multi_account | boolean | No | false | Создать задачу для каждого аккаунта на устройстве |
| merge_same_username_tasks | boolean | No | false | Объединить все цели устройства в одну задачу |
| platform | string | No | — | Платформа (tiktok / instagram). Применяется только в мультиплатформенных сборках |
| min_interval | integer | No | 0 | Минимальный интервал в минутах между задачами |
| max_interval | integer | No | 0 | Максимальный интервал в минутах между задачами |
| start_time | string | No | — | Время начала первой задачи в формате HH:MM |
| rotate_proxy | boolean | No | false | Сменить прокси устройства перед запуском |
| switch_account_method | string | No | — | Метод переключения аккаунтов в мультиаккаунт режиме |
| official_packages | string[] | No | [] | Ограничить выполнение этими официальными пакетами |
| clone_package_prefix | string | No | — | Ограничить выполнение клонами с этим префиксом пакета |
| script_config | object | No | — | Переключатели функций / настройки, переопределяющие конфигурацию из приложения (см. ниже) |
В запросе не нужно передавать data_source_type — кампания автоматически использует data_type датасета (usernames или post_links). Датасеты с ссылками поддерживают только функции boost_posts и mass_comment.
Переопределения script_config
script_config необязателен. При отсутствии кампания использует переключатели и настройки из приложения. Передайте его для запуска полностью автономной кампании или переопределения конкретных полей. Ключи принимаются в camelCase и snake_case.
| Поле | Тип | Описание |
|---|---|---|
| access_method | string | Способ доступа к целям: search или direct |
| features.follow_users | boolean | Подписаться на каждую цель |
| features.unfollow_users | boolean | Отписаться от каждой цели |
| features.report_account | boolean | Пожаловаться на аккаунт цели |
| features.send_dm | boolean | Отправить личное сообщение каждой цели |
| features.boost_posts | boolean | Лайк / избранное / репост / поделиться публикациями цели |
| features.mass_comment | boolean | Комментировать публикации цели |
| follow_settings.boost_type | string | follow или unfollow |
| dm_settings.message_format | string | multiline (по умолчанию) или spintax — см. раздел о форматах сообщений ниже |
| dm_settings.message_contents | string | Текст сообщения. В multiline каждая строка — отдельное сообщение (### = перенос строки внутри сообщения); в spintax вся строка — одно сообщение (обычные переносы строк, группы {option1|option2}). Поддерживает {username} и {sender_username}. |
| dm_settings.message_order | string | random или sequential (применяется только к формату multiline) |
| dm_settings.insert_emoji | boolean | Вставить случайный эмодзи в ЛС |
| dm_settings.generate_by_chatgpt | boolean | Генерировать ЛС через ChatGPT |
| dm_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| post_settings.skip_posts_count | integer | Публикации для пропуска перед действиями (0–8, только username) |
| post_settings.max_posts_count | integer |