Pular para o conteúdo principal

Configuração do Script Super Marketing

Esta página documenta os endpoints da API para o script Super Marketing. Ao contrário dos outros scripts, o super marketing não é criado através do endpoint genérico POST /api/v1/task — ele funciona com base em um conjunto de dados reutilizável de destinos e possui seus próprios endpoints dedicados.

Visão Geral

Uma campanha de super marketing combina várias ações de crescimento (seguir, deixar de seguir, denunciar, DM, boost, comentário em massa) em uma única execução sobre um pool de destinos. O pool de destinos é armazenado como um conjunto de dados:

  • Tipo de dados — o conjunto de dados contém usernames (handles do TikTok/Instagram) ou post_links (URLs de publicações).
  • Estratégia — controla como os destinos são distribuídos entre os dispositivos:
    • shared_pool — cada dispositivo/conta selecionado processa todos os destinos.
    • consume_once — os destinos são divididos entre os dispositivos e cada um é consumido uma vez.

O fluxo típico é:

  1. Importe os destinos para um conjunto de dados → obtenha um dataset_id.
  2. Execute uma campanha que referencia esse dataset_id em um ou mais dispositivos.

As ativações de funcionalidades (follow / DM / comentário, etc.) e suas configurações detalhadas são lidas da configuração salva no aplicativo desktop (super_marketing_settings.json). Você pode substituir qualquer uma delas por execução passando script_config na solicitação de execução.

Requisito de Licença

Todos os endpoints de super marketing requerem um plano Pro, Team ou Business, como o restante da API Local.


Importar Conjunto de Dados

Crie um novo conjunto de dados ou adicione destinos a um existente.

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

Corpo da Solicitação

CampoTipoObrigatórioPadrãoDescrição
dataset_idintegerNãoID do conjunto de dados existente para adicionar/substituir. Omita ou use 0 para criar um novo conjunto de dados.
data_typestringSimusernames ou post_links
strategystringSimshared_pool ou consume_once
entriesstring[]Sim*[]Destinos como array JSON. Tem prioridade sobre raw_text.
raw_textstringSim*Destinos como string separada por quebras de linha (alternativa a entries).
modestringNãoappendappend adiciona às entradas existentes; replace limpa as entradas existentes primeiro.
labelstringNãoRótulo legível por humanos opcional para o conjunto de dados.
observação

Forneça os destinos via entries ou raw_text. Entradas duplicadas e vazias são ignoradas. Uma única importação é limitada a 100.000 entradas.

Exemplo

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

Adicione mais destinos a um conjunto de dados existente usando texto separado por quebras de linha:

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

Resposta de Exemplo

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

Listar Conjuntos de Dados

Recupere todos os conjuntos de dados com estatísticas de consumo.

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

Parâmetros de Query

ParâmetroTipoPadrãoDescrição
data_typestringFiltro opcional: usernames ou post_links

Exemplo

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

Resposta de Exemplo

{
"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"
}
]
}

Obter Conjunto de Dados

Recupere as estatísticas de um conjunto de dados e uma página de suas entradas.

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

Parâmetros de Query

ParâmetroTipoPadrãoDescrição
limitinteger50Entradas por página (máx 500)
offsetinteger0Número de entradas a pular

Exemplo

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

Limpar Conjunto de Dados

Remove todas as entradas de um conjunto de dados. O registro do conjunto de dados é mantido (e seu dataset_id permanece válido para importações futuras).

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

Exemplo

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

Resposta de Exemplo

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

Executar Campanha

Inicie uma campanha de super marketing nos dispositivos fornecidos, usando os destinos de um conjunto de dados.

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

Corpo da Solicitação

CampoTipoObrigatórioPadrãoDescrição
serialsstring[]Sim[]Números de série dos dispositivos para executar
dataset_idintegerSimConjunto de dados cujos destinos guiam a campanha
enable_multi_accountbooleanNãofalseCria uma tarefa por conta em cada dispositivo
merge_same_username_tasksbooleanNãofalseAgrupa todos os destinos de um dispositivo em uma única tarefa em vez de uma por destino
platformstringNãoOverride de plataforma (tiktok / instagram). Válido apenas em builds multi-plataforma
min_intervalintegerNão0Minutos mínimos entre os horários de início escalonados das tarefas
max_intervalintegerNão0Minutos máximos entre os horários de início escalonados das tarefas
start_timestringNãoHorário de início da primeira tarefa em HH:MM
rotate_proxybooleanNãofalseRotaciona o proxy do dispositivo antes de executar
switch_account_methodstringNãoComo trocar contas no modo multi-conta (ex.: profile)
official_packagesstring[]Não[]Restringe a execução a esses pacotes oficiais (modo multi-conta)
clone_package_prefixstringNãoRestringe a execução a apps clone cujo nome de pacote começa com este prefixo
script_configobjectNãoAtivações de funcionalidades / configurações por funcionalidade que substituem a configuração salva no app desktop (veja abaixo)
O tipo de dados vem do conjunto de dados

Você não passa data_source_type na solicitação de execução — a campanha usa automaticamente o data_type do conjunto de dados (usernames ou post_links). Conjuntos de dados com links de publicações suportam apenas as funcionalidades boost_posts e mass_comment.

Substituições de script_config

script_config é opcional. Quando omitido, a campanha usa as ativações de funcionalidades e configurações definidas no app desktop. Forneça-o para executar uma campanha totalmente autônoma ou para substituir campos específicos. As chaves aceitam camelCase e snake_case.

CampoTipoDescrição
access_methodstringComo acessar os destinos por username: search ou direct
features.follow_usersbooleanSeguir cada destino
features.unfollow_usersbooleanDeixar de seguir cada destino
features.report_accountbooleanDenunciar cada conta de destino
features.send_dmbooleanEnviar mensagem direta para cada destino
features.boost_postsbooleanCurtir / salvar nos Favoritos / compartilhar as publicações do destino
features.mass_commentbooleanComentar nas publicações do destino
follow_settings.boost_typestringfollow ou unfollow
dm_settings.message_contentsstringTexto do DM (separado por quebras de linha para múltiplas variantes)
dm_settings.message_orderstringrandom ou sequential
dm_settings.insert_emojibooleanInserir emoji aleatório no DM
dm_settings.generate_by_chatgptbooleanGerar o DM com ChatGPT
dm_settings.chatgpt_promptstringPrompt usado ao gerar o DM
dm_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
post_settings.skip_posts_countintegerPublicações a pular antes de agir (0–8, apenas origem por username)
post_settings.max_posts_countintegerMáximo de publicações a processar por destino
post_settings.enable_likebooleanCurtir publicações
post_settings.enable_favoritebooleanAdicionar publicações aos Favoritos
post_settings.enable_repostbooleanCompartilhar publicações
post_settings.enable_sharebooleanCompartilhar publicações
post_settings.repeat_timesintegerVezes para repetir as ações nas publicações
post_settings.view_durationsinteger[]Segundos [min, max] para assistir cada publicação
comment_settings.comment_contentstringTexto do comentário (separado por quebras de linha para múltiplas variantes)
comment_settings.comment_orderstringrandom ou sequential
comment_settings.insert_emojibooleanInserir emoji aleatório no comentário
comment_settings.generate_by_chatgptbooleanGerar o comentário com ChatGPT
comment_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
task_finish_wait_timeintegerSegundos de espera antes de finalizar (evita perda de dados)

Exemplos

Execução Mínima (usar configurações salvas no app desktop)

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

Campanha Autônoma de Follow + 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"
}
}
}'

Resposta de Exemplo

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

created_count é o número de tarefas criadas. As tarefas pendentes são então executadas nos dispositivos atribuídos como qualquer outra tarefa — rastreie-as pela API de Gerenciamento de Tarefas.


Respostas de Erro

Status HTTPCódigoDescrição
40040001Parâmetros inválidos (bad data_type/strategy, serials vazio, dataset_id não positivo, script_config não é objeto, ou nenhuma tarefa criada)
40340301Proibido — Acesso à API requer plano Pro+
40440401Conjunto de dados não encontrado
50050001Erro interno do servidor
Nenhuma tarefa criada

Se a execução retornar o código 40001 com a mensagem "No tasks created", verifique se o conjunto de dados ainda tem destinos restantes (para a estratégia consume_once) e se os dispositivos selecionados estão online.

Veja Também