Перейти до основного вмісту

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

На цій сторінці описано кінцеві точки API для скрипту Супер-маркетинг. На відміну від інших скриптів, супер-маркетинг не створюється через загальний ендпоінт POST /api/v1/task — він працює на основі датасету цілей і має власні ендпоінти.

Огляд

Кампанія супер-маркетингу поєднує кілька дій (підписка, відписка, скарга, DM, boost, масові коментарі) в одному запуску на пул цілей. Пул цілей зберігається як датасет:

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

Типовий процес:

  1. Імпортуйте цілі в датасет → отримайте dataset_id.
  2. Запустіть кампанію з посиланням на dataset_id для одного або кількох пристроїв.

Перемикачі функцій (підписка / DM / коментар тощо) зчитуються зі збереженої конфігурації (super_marketing_settings.json). Ви можете перевизначити будь-які з них для кожного запуску через script_config.

Вимоги до ліцензії

Всі ендпоінти супер-маркетингу потребують плану Pro, Team або Business, як і решта Local 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": "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_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": "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}

Параметри запиту

ПараметрТипЗа замовчуваннямОпис
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Надіслати DM кожній цілі
features.boost_postsbooleanЛайк / обране / репост / поширення публікацій цілі
features.mass_commentbooleanКоментувати публікації цілі
follow_settings.boost_typestringfollow або unfollow
dm_settings.message_contentsstringТекст DM (через новий рядок для варіантів)
dm_settings.message_orderstringrandom або sequential
dm_settings.insert_emojibooleanВставити випадковий емодзі
dm_settings.generate_by_chatgptbooleanГенерувати DM через ChatGPT
dm_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
post_settings.skip_posts_countintegerПублікацій для пропуску (0–8, лише джерело usernames)
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
}'

Кампанія підписки + 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
}
}
}'

Масові коментарі на датасеті посилань

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": "🔥🔥🔥\nAmazing!\nLove this",
"comment_order": "random"
}
}
}'

Приклад відповіді

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

created_count — кількість створених завдань. Очікуючі завдання запускаються на призначених пристроях — відстежуйте їх через API управління завданнями.


Відповіді про помилки

HTTP СтатусCodeОпис
40040001Невірні параметри (неправильний data_type/strategy, порожній serials, некоректний dataset_id, script_config не є об'єктом або жодне завдання не створено)
40340301Заборонено — потрібен план Pro+
40440401Датасет не знайдено
50050001Внутрішня помилка сервера
Не створено жодного завдання

Якщо запуск повертає код 40001 з повідомленням "No tasks created", переконайтеся, що датасет має записи (для стратегії consume_once) і що вибрані пристрої онлайн.

Дивіться також