Saltar al contenido principal

Configuración del Script Super Marketing

Esta página documenta los endpoints de la API para el script Super Marketing. A diferencia de otros scripts, el super marketing no se crea a través del endpoint genérico POST /api/v1/task — funciona con un conjunto de datos reutilizable de objetivos y tiene sus propios endpoints dedicados.

Descripción General

Una campaña de super marketing combina varias acciones de crecimiento (seguir, dejar de seguir, reportar, DM, impulsar, comentario masivo) en una sola ejecución sobre un grupo de objetivos. El grupo de objetivos se almacena como un conjunto de datos:

  • Tipo de datos — el conjunto de datos contiene usernames (handles de TikTok/Instagram) o post_links (URLs de publicaciones).
  • Estrategia — controla cómo se distribuyen los objetivos entre tus dispositivos:
    • shared_pool — cada dispositivo/cuenta seleccionado procesa todos los objetivos.
    • consume_once — los objetivos se dividen entre dispositivos y cada uno se consume una vez.

El flujo típico es:

  1. Importar objetivos a un conjunto de datos → obtener un dataset_id.
  2. Ejecutar una campaña que referencia ese dataset_id en uno o más dispositivos.

Los controles de características (seguir / DM / comentar, etc.) y sus configuraciones detalladas se leen de la configuración guardada en la aplicación de escritorio (super_marketing_settings.json). Puedes anular cualquiera de ellos por ejecución pasando script_config en la solicitud de ejecución.

Requisito de Licencia

Todos los endpoints de super marketing requieren un plan Pro, Team o Business, como el resto de la API Local.


Importar Conjunto de Datos

Crea un nuevo conjunto de datos o añade objetivos a uno existente.

  • Endpoint: POST /api/v1/super-marketing/dataset

Cuerpo de la Solicitud

CampoTipoRequeridoPredeterminadoDescripción
dataset_idintegerNoID del conjunto de datos existente al que añadir/reemplazar. Omitir o usar 0 para crear uno nuevo.
data_typestringusernames o post_links
strategystringshared_pool o consume_once
entriesstring[]Sí*[]Objetivos como array JSON. Tiene prioridad sobre raw_text.
raw_textstringSí*Objetivos como string separado por saltos de línea (alternativa a entries).
modestringNoappendappend añade a las entradas existentes; replace borra las entradas existentes primero.
labelstringNoEtiqueta opcional para el conjunto de datos.
nota

Proporciona los objetivos mediante entries o raw_text. Las entradas duplicadas y vacías se ignoran. Una sola importación está limitada a 100.000 entradas.

Ejemplo

curl -X POST http://localhost:50809/api/v1/super-marketing/dataset \
-H "Content-Type: application/json" \
-d '{
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Objetivos Campaña A",
"entries": ["@user_one", "@user_two", "@user_three"]
}'

Añadir más objetivos a un conjunto de datos existente usando texto separado por saltos de línea:

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"
}'

Respuesta de Ejemplo

{
"code": 0,
"message": "success",
"data": {
"dataset": {
"stats": {
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Objetivos Campaña 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
}
}
}

Listar Conjuntos de Datos

Obtener todos los conjuntos de datos con estadísticas de consumo.

  • Endpoint: GET /api/v1/super-marketing/datasets

Parámetros de Consulta

ParámetroTipoPredeterminadoDescripción
data_typestringFiltro opcional: usernames o post_links

Ejemplo

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

Respuesta de Ejemplo

{
"code": 0,
"message": "success",
"data": [
{
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Objetivos Campaña A",
"total": 6,
"consumed": 0,
"remaining": 6,
"created_at": "2026-06-22 09:00:00",
"updated_at": "2026-06-22 09:05:00"
}
]
}

Obtener Conjunto de Datos

Obtener las estadísticas de un conjunto de datos y una página de sus entradas.

  • Endpoint: GET /api/v1/super-marketing/dataset/{id}

Parámetros de Consulta

ParámetroTipoPredeterminadoDescripción
limitinteger50Entradas por página (máx. 500)
offsetinteger0Número de entradas a omitir

Ejemplo

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

Limpiar Conjunto de Datos

Eliminar todas las entradas de un conjunto de datos. El registro del conjunto de datos en sí se conserva (y su dataset_id sigue siendo válido para futuras importaciones).

  • Endpoint: DELETE /api/v1/super-marketing/dataset/{id}

Ejemplo

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

Respuesta de Ejemplo

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

Ejecutar Campaña

Lanzar una campaña de super marketing en los dispositivos dados, usando los objetivos de un conjunto de datos.

  • Endpoint: POST /api/v1/super-marketing/run

Cuerpo de la Solicitud

CampoTipoRequeridoPredeterminadoDescripción
serialsstring[][]Números de serie de los dispositivos donde ejecutar
dataset_idintegerConjunto de datos cuyos objetivos impulsan la campaña
enable_multi_accountbooleanNofalseCrear una tarea por cuenta en cada dispositivo
merge_same_username_tasksbooleanNofalseAgrupar todos los objetivos de un dispositivo en una tarea en lugar de una tarea por objetivo
platformstringNoAnulación de plataforma (tiktok / instagram). Solo se respeta en compilaciones multiplataforma
min_intervalintegerNo0Minutos mínimos entre horas de inicio escalonadas de tareas
max_intervalintegerNo0Minutos máximos entre horas de inicio escalonadas de tareas
start_timestringNoHora de inicio de la primera tarea en HH:MM
rotate_proxybooleanNofalseRotar el proxy del dispositivo antes de ejecutar
switch_account_methodstringNoCómo cambiar de cuenta en modo multi-cuenta (p. ej. profile)
official_packagesstring[]No[]Restringir la ejecución a estos paquetes oficiales (modo multi-cuenta)
clone_package_prefixstringNoRestringir la ejecución a aplicaciones clonadas cuyo nombre de paquete comience con este prefijo
script_configobjectNoControles de características / configuraciones por característica que anulan la configuración guardada en escritorio (ver abajo)
El tipo de datos proviene del conjunto de datos

No pasas data_source_type en la solicitud de ejecución — la campaña usa automáticamente el data_type del conjunto de datos (usernames o post_links). Los conjuntos de datos de links de publicaciones solo admiten las características boost_posts y mass_comment.

Anulaciones de script_config

script_config es opcional. Cuando se omite, la campaña usa los controles de características y la configuración que configuraste en la aplicación de escritorio. Proporciónalo para ejecutar una campaña completamente autónoma o para anular campos específicos. Las claves aceptan tanto camelCase como snake_case.

CampoTipoDescripción
access_methodstringCómo llegar a los objetivos de nombre de usuario: search o direct
features.follow_usersbooleanSeguir cada objetivo
features.unfollow_usersbooleanDejar de seguir cada objetivo
features.report_accountbooleanReportar cada cuenta objetivo
features.send_dmbooleanEnviar un mensaje directo a cada objetivo
features.boost_postsbooleanDar me gusta / guardar en favoritos / repostear / compartir las publicaciones del objetivo
features.mass_commentbooleanComentar en las publicaciones del objetivo
follow_settings.boost_typestringfollow o unfollow
dm_settings.message_contentsstringTexto del DM (separado por saltos de línea para múltiples variantes)
dm_settings.message_orderstringrandom o sequential
dm_settings.insert_emojibooleanInsertar emoji aleatorio en el DM
dm_settings.generate_by_chatgptbooleanGenerar el DM con ChatGPT
dm_settings.chatgpt_promptstringPrompt usado al generar el DM
dm_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
post_settings.skip_posts_countintegerPublicaciones a omitir antes de actuar (0–8, solo fuente de nombre de usuario)
post_settings.max_posts_countintegerMáximo de publicaciones a procesar por objetivo
post_settings.enable_likebooleanDar me gusta a publicaciones
post_settings.enable_favoritebooleanAñadir publicaciones a favoritos
post_settings.enable_repostbooleanRepostear publicaciones
post_settings.enable_sharebooleanCompartir publicaciones
post_settings.repeat_timesintegerVeces que se repiten las acciones de publicación
post_settings.view_durationsinteger[]Segundos [min, max] para ver cada publicación
comment_settings.comment_contentstringTexto del comentario (separado por saltos de línea para múltiples variantes)
comment_settings.comment_orderstringrandom o sequential
comment_settings.insert_emojibooleanInsertar emoji aleatorio en el comentario
comment_settings.generate_by_chatgptbooleanGenerar el comentario con ChatGPT
comment_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
task_finish_wait_timeintegerSegundos de espera antes de finalizar (previene pérdida de datos)

Ejemplos

Ejecución mínima (usar configuración guardada en escritorio)

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
}'

Campaña autónoma de seguir + 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": "¡Hola! Me encanta tu contenido 🙌\n¡Geniales publicaciones, sigue así!",
"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¡Increíble!\n¡Me encanta esto!",
"comment_order": "random"
}
}
}'

Respuesta de Ejemplo

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

created_count es el número de tareas que se crearon. Las tareas pendientes luego se ejecutan en sus dispositivos asignados como cualquier otra tarea — realiza su seguimiento a través de la API de Gestión de Tareas.


Respuestas de Error

Estado HTTPCódigoDescripción
40040001Parámetros inválidos (mal data_type/strategy, serials vacío, dataset_id no positivo, script_config no es objeto, o no se crearon tareas)
40340301Prohibido — el acceso a la API requiere plan Pro+
40440401Conjunto de datos no encontrado
50050001Error interno del servidor
No se crearon tareas

Si la ejecución devuelve el código 40001 con un mensaje "No tasks created", verifica que el conjunto de datos aún tenga objetivos restantes (para la estrategia consume_once) y que los dispositivos seleccionados estén en línea.

Ver También