Конфігурація скрипту супер-маркетингу
На цій сторінці описано кінцеві точки API для скрипту Супер-маркетинг. На відміну від інших скриптів, супер-маркетинг не створюється через загальний ендпоінт POST /api/v1/task — він працює на основі датасету цілей і має власні ендпоінти.
Огляд
Кампанія супер-маркетингу поєднує кілька дій (підписка, відписка, скарга, DM, boost, масові коментарі) в одному запуску на пул цілей. Пул цілей зберігається як датасет:
- Тип даних — датасет містить
usernames(TikTok/Instagram нікнейми) абоpost_links(URL публікацій). - Стратегія — керує розподілом цілей між пристроями:
shared_pool— кожен пристрій/акаунт обробляє всі цілі.consume_once— цілі розподіляються між пристроями, кожна ціль споживається один раз.
Типовий процес:
- Імпортуйте цілі в датасет → отримайте
dataset_id. - Запустіть кампанію з посиланням на
dataset_idдля одного або кількох пристроїв.
Перемикачі функцій (підписка / DM / коментар тощо) зчитуються зі збереженої конфігурації (super_marketing_settings.json). Ви можете перевизначити будь-які з них для кожного запуску через script_config.
Всі ендпоінти супер-маркетингу потребують плану Pro, Team або Business, як і решта Local 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": "Campaign A targets",
"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": "Campaign A targets",
"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": "Campaign A targets",
"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 | Надіслати DM кожній цілі |
| features.boost_posts | boolean | Лайк / обране / репост / поширення публікацій цілі |
| features.mass_comment | boolean | Коментувати публікації цілі |
| follow_settings.boost_type | string | follow або unfollow |
| dm_settings.message_contents | string | Текст DM (через новий рядок для варіантів) |
| dm_settings.message_order | string | random або sequential |
| dm_settings.insert_emoji | boolean | Вставити випадковий емодзі |
| dm_settings.generate_by_chatgpt | boolean | Генерувати DM через ChatGPT |
| dm_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| post_settings.skip_posts_count | integer | Публікацій для пропуску (0–8, лише джерело usernames) |
| post_settings.max_posts_count | integer | Макс. публікацій на ціль |
| post_settings.enable_like | boolean | Вподобати публікації |
| post_settings.enable_favorite | boolean | Додати до обраного |
| post_settings.enable_repost | boolean | Репостити публікації |
| post_settings.enable_share | boolean | Поширити публікації |
| post_settings.repeat_times | integer | Кількість повторень дій |
| post_settings.view_durations | integer[] | [min, max] секунд перегляду кожної публікації |
| comment_settings.comment_content | string | Текст коментаря (через новий рядок для варіантів) |
| comment_settings.comment_order | string | random або sequential |
| comment_settings.insert_emoji | boolean | Вставити випадковий емодзі |
| comment_settings.generate_by_chatgpt | boolean | Генерувати коментар через ChatGPT |
| comment_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| task_finish_wait_time | integer | Секунд очікування перед завершенням |
Приклади
Мінімальний запуск (використання налаштувань додатку)
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
}'
Кампанія підписки + DM
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": "Hey! Love your content 🙌\nGreat posts, keep it up!",
"message_order": "random",
"insert_emoji": true
}
}
}'