Super-Marketing-Skript-Konfiguration
Diese Seite dokumentiert die API-Endpunkte für das Super-Marketing-Skript. Im Gegensatz zu anderen Skripten wird Super-Marketing nicht über den generischen Endpunkt POST /api/v1/task erstellt — es basiert auf einem wiederverwendbaren Datensatz von Zielen mit eigenen dedizierten Endpunkten.
Übersicht
Eine Super-Marketing-Kampagne kombiniert mehrere Wachstumsaktionen (Folgen, Entfolgen, Melden, DM, Boosten, Massen-Kommentar) in einem einzigen Durchlauf über einen Pool von Zielen. Der Ziel-Pool wird als Datensatz gespeichert:
- Datentyp — der Datensatz enthält entweder
usernames(TikTok-/Instagram-Handles) oderpost_links(Beitrags-URLs). - Strategie — steuert, wie Ziele auf Ihre Geräte verteilt werden:
shared_pool— jedes ausgewählte Gerät/Konto verarbeitet alle Ziele.consume_once— Ziele werden auf Geräte aufgeteilt und jedes nur einmal verbraucht.
Der typische Ablauf ist:
- Importieren Sie Ziele in einen Datensatz → erhalten Sie eine
dataset_id. - Starten Sie eine Kampagne, die diese
dataset_idauf einem oder mehreren Geräten referenziert.
Feature-Schalter (Folgen / DM / Kommentar usw.) und deren Detaileinstellungen werden aus der gespeicherten Desktop-App-Konfiguration (super_marketing_settings.json) gelesen. Sie können diese pro Kampagne durch Übergabe von script_config in der Run-Anfrage überschreiben.
Alle Super-Marketing-Endpunkte erfordern einen Pro-, Team- oder Business-Plan, wie der Rest der lokalen API.
Datensatz importieren
Einen neuen Datensatz erstellen oder Ziele einem vorhandenen hinzufügen.
- Endpunkt:
POST /api/v1/super-marketing/dataset
Anfragekörper
| Feld | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
| dataset_id | integer | No | — | Vorhandene Datensatz-ID zum Anhängen/Ersetzen. Weglassen oder 0 für neuen Datensatz. |
| data_type | string | Yes | — | usernames oder post_links |
| strategy | string | Yes | — | shared_pool oder consume_once |
| entries | string[] | Yes* | [] | Ziele als JSON-Array. Hat Vorrang vor raw_text. |
| raw_text | string | Yes* | — | Ziele als zeilengetrennte Zeichenkette (Alternative zu entries). |
| mode | string | No | append | append fügt zu vorhandenen Einträgen hinzu; replace löscht vorhandene Einträge zuerst. |
| label | string | No | — | Optionale, lesbare Bezeichnung für den Datensatz. |
Geben Sie Ziele entweder über entries oder raw_text an. Doppelte und leere Einträge werden ignoriert. Ein einzelner Import ist auf 100.000 Einträge begrenzt.
Beispiel
curl -X POST http://localhost:50809/api/v1/super-marketing/dataset \
-H "Content-Type: application/json" \
-d '{
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Kampagne A Ziele",
"entries": ["@user_one", "@user_two", "@user_three"]
}'
Weitere Ziele an einen vorhandenen Datensatz als zeilengetrennte Zeichenkette anhängen:
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"
}'
Beispielantwort
{
"code": 0,
"message": "success",
"data": {
"dataset": {
"stats": {
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Kampagne A Ziele",
"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
}
}
}
Datensätze auflisten
Alle Datensätze mit Verbrauchsstatistiken abrufen.
- Endpunkt:
GET /api/v1/super-marketing/datasets
Abfrageparameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
| data_type | string | — | Optionaler Filter: usernames oder post_links |
Beispiel
curl "http://localhost:50809/api/v1/super-marketing/datasets?data_type=usernames"
Beispielantwort
{
"code": 0,
"message": "success",
"data": [
{
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Kampagne A Ziele",
"total": 6,
"consumed": 0,
"remaining": 6,
"created_at": "2026-06-22 09:00:00",
"updated_at": "2026-06-22 09:05:00"
}
]
}
Datensatz abrufen
Statistiken eines Datensatzes und eine Seite seiner Einträge abrufen.
- Endpunkt:
GET /api/v1/super-marketing/dataset/{id}
Abfrageparameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
| limit | integer | 50 | Einträge pro Seite (max 500) |
| offset | integer | 0 | Anzahl der zu überspringenden Einträge |
Beispiel
curl "http://localhost:50809/api/v1/super-marketing/dataset/7?limit=100&offset=0"
Datensatz leeren
Alle Einträge aus einem Datensatz entfernen. Der Datensatz-Datensatz selbst bleibt erhalten (und seine dataset_id ist für zukünftige Importe weiterhin gültig).
- Endpunkt:
DELETE /api/v1/super-marketing/dataset/{id}
Beispiel
curl -X DELETE http://localhost:50809/api/v1/super-marketing/dataset/7
Beispielantwort
{
"code": 0,
"message": "success",
"data": { "cleared": true, "dataset_id": 7 }
}
Kampagne starten
Eine Super-Marketing-Kampagne auf den angegebenen Geräten starten, unter Verwendung der Ziele eines Datensatzes.
- Endpunkt:
POST /api/v1/super-marketing/run
Anfragekörper
| Feld | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
| serials | string[] | Yes | [] | Geräteseriennummern, auf denen die Kampagne ausgeführt werden soll |
| dataset_id | integer | Yes | — | Datensatz, dessen Ziele die Kampagne steuern |
| enable_multi_account | boolean | No | false | Eine Aufgabe pro Konto auf jedem Gerät erstellen |
| merge_same_username_tasks | boolean | No | false | Alle Ziele eines Geräts in eine Aufgabe packen statt einer Aufgabe pro Ziel |
| platform | string | No | — | Plattform-Override (tiktok / instagram). Wird nur bei Multi-Plattform-Builds berücksichtigt |
| min_interval | integer | No | 0 | Mindestminuten zwischen gestaffelten Aufgaben-Startzeiten |
| max_interval | integer | No | 0 | Maximalminuten zwischen gestaffelten Aufgaben-Startzeiten |
| start_time | string | No | — | Startzeit der ersten Aufgabe im Format HH:MM |
| rotate_proxy | boolean | No | false | Geräte-Proxy vor dem Ausführen rotieren |
| switch_account_method | string | No | — | Methode zum Kontowechsel im Multi-Account-Modus (z.B. profile) |
| official_packages | string[] | No | [] | Ausführung auf diese offiziellen Pakete beschränken (Multi-Account-Modus) |
| clone_package_prefix | string | No | — | Ausführung auf Klon-Apps beschränken, deren Paketname mit diesem Präfix beginnt |
| script_config | object | No | — | Feature-Schalter / Pro-Feature-Einstellungen, die die Desktop-gespeicherte Konfiguration überschreiben (siehe unten) |
Sie übergeben data_source_type nicht in der Run-Anfrage — die Kampagne verwendet automatisch den data_type des Datensatzes (usernames oder post_links). Post-Link-Datensätze unterstützen nur die Funktionen boost_posts und mass_comment.
script_config-Überschreibungen
script_config ist optional. Wenn weggelassen, verwendet die Kampagne die in der Desktop-App konfigurierten Feature-Schalter und Einstellungen. Geben Sie es an, um eine vollständig eigenständige Kampagne auszuführen oder bestimmte Felder zu überschreiben. Schlüssel akzeptieren sowohl camelCase als auch snake_case.
| Feld | Typ | Beschreibung |
|---|---|---|
| access_method | string | Wie Benutzernamen-Ziele erreicht werden: search oder direct |
| features.follow_users | boolean | Jedes Ziel folgen |
| features.unfollow_users | boolean | Jedem Ziel entfolgen |
| features.report_account | boolean | Jedes Ziel-Konto melden |
| features.send_dm | boolean | Eine Direktnachricht an jedes Ziel senden |
| features.boost_posts | boolean | Beiträge des Ziels liken / favorisieren / reposten / teilen |
| features.mass_comment | boolean | Beiträge des Ziels kommentieren |
| follow_settings.boost_type | string | follow oder unfollow |
| dm_settings.message_contents | string | DM-Text (zeilengetrennt für mehrere Varianten) |
| dm_settings.message_order | string | random oder sequential |
| dm_settings.insert_emoji | boolean | Zufälliges Emoji in die DM einfügen |
| dm_settings.generate_by_chatgpt | boolean | DM mit ChatGPT generieren |
| dm_settings.chatgpt_prompt | string | Prompt für die DM-Generierung |
| dm_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| post_settings.skip_posts_count | integer | Beiträge, die vor der Aktion übersprungen werden (0–8, nur Benutzernamen-Quelle) |
| post_settings.max_posts_count | integer | Maximale Beiträge pro Ziel |
| post_settings.enable_like | boolean | Beiträge liken |
| post_settings.enable_favorite | boolean | Beiträge zu Favoriten hinzufügen |
| post_settings.enable_repost | boolean | Beiträge reposten |
| post_settings.enable_share | boolean | Beiträge teilen |
| post_settings.repeat_times | integer | Wie oft die Beitragsaktionen wiederholt werden |
| post_settings.view_durations | integer[] | [min, max] Sekunden zum Ansehen jedes Beitrags |
| comment_settings.comment_content | string | Kommentar-Text (zeilengetrennt für mehrere Varianten) |
| comment_settings.comment_order | string | random oder sequential |
| comment_settings.insert_emoji | boolean | Zufälliges Emoji in den Kommentar einfügen |
| comment_settings.generate_by_chatgpt | boolean | Kommentar mit ChatGPT generieren |
| comment_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| task_finish_wait_time | integer | Sekunden Wartezeit vor dem Beenden (verhindert Datenverlust) |
Beispiele
Minimaler Start (Desktop-gespeicherte Einstellungen verwenden)
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
}'
Eigenständige Folgen + DM-Kampagne
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! Tolle Inhalte 🙌\nSuper Posts, weiter so!",
"message_order": "random",
"insert_emoji": true
}
}
}'
Massen-Kommentar auf einem Post-Link-Datensatz
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"
}
}
}'
Beispielantwort
{
"code": 0,
"message": "success",
"data": { "created_count": 6 }
}
created_count ist die Anzahl der erstellten Aufgaben. Die ausstehenden Aufgaben werden dann wie jede andere Aufgabe auf den zugewiesenen Geräten ausgeführt — verfolgen Sie sie über die Task-Management-API.
Fehlerantworten
| HTTP-Status | Code | Beschreibung |
|---|---|---|
| 400 | 40001 | Ungültige Parameter (falscher data_type/strategy, leere serials, nicht-positive dataset_id, kein Objekt script_config, oder keine Aufgaben erstellt) |
| 403 | 40301 | Verboten — API-Zugriff erfordert Pro+-Plan |
| 404 | 40401 | Datensatz nicht gefunden |
| 500 | 50001 | Interner Serverfehler |
Wenn der Start Code 40001 mit der Meldung „No tasks created" zurückgibt, prüfen Sie, ob der Datensatz noch verbleibende Ziele hat (bei consume_once-Strategie) und ob die ausgewählten Geräte online sind.
Siehe auch
- Lokale API-Übersicht - API-Übersicht und Schnellstart
- Task-Management-API - Erstellte Aufgaben verfolgen und verwalten
- Kontostatus-API - Konto- und Gerätestatus abfragen