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) opost_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:
- Importar objetivos a un conjunto de datos → obtener un
dataset_id. - Ejecutar una campaña que referencia ese
dataset_iden 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.
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
| Campo | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
| dataset_id | integer | No | — | ID del conjunto de datos existente al que añadir/reemplazar. Omitir o usar 0 para crear uno nuevo. |
| data_type | string | Sí | — | usernames o post_links |
| strategy | string | Sí | — | shared_pool o consume_once |
| entries | string[] | Sí* | [] | Objetivos como array JSON. Tiene prioridad sobre raw_text. |
| raw_text | string | Sí* | — | Objetivos como string separado por saltos de línea (alternativa a entries). |
| mode | string | No | append | append añade a las entradas existentes; replace borra las entradas existentes primero. |
| label | string | No | — | Etiqueta opcional para el conjunto de datos. |
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ámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| data_type | string | — | Filtro 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ámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| limit | integer | 50 | Entradas por página (máx. 500) |
| offset | integer | 0 | Nú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
| Campo | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
| serials | string[] | Sí | [] | Números de serie de los dispositivos donde ejecutar |
| dataset_id | integer | Sí | — | Conjunto de datos cuyos objetivos impulsan la campaña |
| enable_multi_account | boolean | No | false | Crear una tarea por cuenta en cada dispositivo |
| merge_same_username_tasks | boolean | No | false | Agrupar todos los objetivos de un dispositivo en una tarea en lugar de una tarea por objetivo |
| platform | string | No | — | Anulación de plataforma (tiktok / instagram). Solo se respeta en compilaciones multiplataforma |
| min_interval | integer | No | 0 | Minutos mínimos entre horas de inicio escalonadas de tareas |
| max_interval | integer | No | 0 | Minutos máximos entre horas de inicio escalonadas de tareas |
| start_time | string | No | — | Hora de inicio de la primera tarea en HH:MM |
| rotate_proxy | boolean | No | false | Rotar el proxy del dispositivo antes de ejecutar |
| switch_account_method | string | No | — | Cómo cambiar de cuenta en modo multi-cuenta (p. ej. profile) |
| official_packages | string[] | No | [] | Restringir la ejecución a estos paquetes oficiales (modo multi-cuenta) |
| clone_package_prefix | string | No | — | Restringir la ejecución a aplicaciones clonadas cuyo nombre de paquete comience con este prefijo |
| script_config | object | No | — | Controles de características / configuraciones por característica que anulan la configuración guardada en escritorio (ver abajo) |
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.
| Campo | Tipo | Descripción |
|---|---|---|
| access_method | string | Cómo llegar a los objetivos de nombre de usuario: search o direct |
| features.follow_users | boolean | Seguir cada objetivo |
| features.unfollow_users | boolean | Dejar de seguir cada objetivo |
| features.report_account | boolean | Reportar cada cuenta objetivo |
| features.send_dm | boolean | Enviar un mensaje directo a cada objetivo |
| features.boost_posts | boolean | Dar me gusta / guardar en favoritos / repostear / compartir las publicaciones del objetivo |
| features.mass_comment | boolean | Comentar en las publicaciones del objetivo |
| follow_settings.boost_type | string | follow o unfollow |
| dm_settings.message_contents | string | Texto del DM (separado por saltos de línea para múltiples variantes) |
| dm_settings.message_order | string | random o sequential |
| dm_settings.insert_emoji | boolean | Insertar emoji aleatorio en el DM |
| dm_settings.generate_by_chatgpt | boolean | Generar el DM con ChatGPT |
| dm_settings.chatgpt_prompt | string | Prompt usado al generar el DM |
| dm_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| post_settings.skip_posts_count | integer | Publicaciones a omitir antes de actuar (0–8, solo fuente de nombre de usuario) |
| post_settings.max_posts_count | integer | Máximo de publicaciones a procesar por objetivo |
| post_settings.enable_like | boolean | Dar me gusta a publicaciones |
| post_settings.enable_favorite | boolean | Añadir publicaciones a favoritos |
| post_settings.enable_repost | boolean | Repostear publicaciones |
| post_settings.enable_share | boolean | Compartir publicaciones |
| post_settings.repeat_times | integer | Veces que se repiten las acciones de publicación |
| post_settings.view_durations | integer[] | Segundos [min, max] para ver cada publicación |
| comment_settings.comment_content | string | Texto del comentario (separado por saltos de línea para múltiples variantes) |
| comment_settings.comment_order | string | random o sequential |
| comment_settings.insert_emoji | boolean | Insertar emoji aleatorio en el comentario |
| comment_settings.generate_by_chatgpt | boolean | Generar el comentario con ChatGPT |
| comment_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| task_finish_wait_time | integer | Segundos 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
}
}
}'
Comentario masivo en un conjunto de datos de links de publicaciones
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 HTTP | Código | Descripción |
|---|---|---|
| 400 | 40001 | Parámetros inválidos (mal data_type/strategy, serials vacío, dataset_id no positivo, script_config no es objeto, o no se crearon tareas) |
| 403 | 40301 | Prohibido — el acceso a la API requiere plan Pro+ |
| 404 | 40401 | Conjunto de datos no encontrado |
| 500 | 50001 | Error interno del servidor |
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
- Visión General de la API Local - Descripción general y inicio rápido
- API de Gestión de Tareas - Rastrear y gestionar las tareas creadas
- API de Estado de Cuentas - Consultar el estado de cuentas y dispositivos