API-Dokumentation

Produktionsreife SMM-Panel-API für Reseller und Agenturen

Standard-SMM-Panel-API v2 — verbinden Sie jede Website, App, jeden Bot oder ein kompatibles Reseller-Panel. Ein Endpunkt, Anfragen über Aktionen, Antworten in JSON — Sie müssen Ihr System nicht umschreiben.

Kompatibel mit den verbreiteten Child-Panel-Skripten Bestellungen · Status · Drip-Feed · Refill · Storno · Guthaben API-Schlüssel aus Ihrem Konto Standard-SMM-Panel-API v2
Überblick

Ein Endpunkt für Bestellungen, Status und Guthaben

Mit der LikesFactory-API automatisieren Sie alles, was ein Reseller braucht: den aktuellen Katalog abgleichen, Bestellungen aufgeben (auch als Drip-Feed), Status abfragen, Refills und Stornos anfordern und Ihr Guthaben lesen. Sie folgt dem Branchenstandard SMM-Panel v2 und arbeitet deshalb mit eigenen Websites, eigenen Apps, Bots und den meisten Reseller-Werkzeugen.

Für wen sie istFür Agenturen, Child-Panel-Betreiber, Bots und eigene Shops, die Großhandel automatisieren müssen.
Was normale Nutzer brauchenNichts — die Oberfläche der Website genügt. Diese Seite ist nur für Anbindungen.
GrundformEine einzige Adresse, ein formkodierter Anfragetext, eine Antwort in JSON, ein API-Schlüssel pro Konto.
POST https://likesfactory.com/api/v2
Schnellstart

Von der Registrierung bis zur ersten API-Anfrage in Minuten

01

Konto erstellen

Registrieren und E-Mail bestätigen.

02

Aufladen

Guthaben aufladen, bevor Sie echte Bestellungen aufgeben.

03

API-Schlüssel kopieren

Öffnen Sie Konto, erzeugen Sie einen Schlüssel und kopieren Sie ihn — er wird einmal gezeigt.

04

Eine Testanfrage senden

Fangen Sie mit action=balance oder services an.

Authentifizierung

Ein privater Schlüssel sichert jede Anfrage

Jede Anfrage muss Ihren privaten API-Schlüssel als key enthalten. Behandeln Sie ihn wie ein Passwort: nicht in JavaScript im Browser, nicht in Screenshots, nicht in Tickets und nicht in öffentlichen Repositories.

ParameterPflichtBeschreibung
keyJaDer API-Schlüssel Ihres Kontos
actionJaName der API-Aktion (add, status, services, …)
Ihr Konto hält immer einen Schlüssel. Er wird einmal gezeigt, in dem Moment, in dem Sie ihn auf der Seite Konto erzeugen — kopieren Sie ihn dann. Ein neuer Schlüssel ersetzt den vorherigen sofort, aktualisieren Sie Ihre Anbindungen also, bevor Sie wechseln.
Senden Sie den Schlüssel im Anfragetext. Der Endpunkt antwortet auch auf GET, aber ein Schlüssel in der Adresszeile landet im Browser-Verlauf, in Proxy- und Server-Protokollen und im Referer-Kopf jeder Seite, die er erreicht. Nehmen Sie immer POST.
Aktionen

Alles, was Sie mit der API tun können

1) Guthaben abfragen

Prüfen Sie das verfügbare Geld, bevor Sie große Aufträge senden.

# Anfrage curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=balance" # Antwort — 100.00 aufgeladen, eine Bestellung über 10.00 aufgegeben { "balance": "90.0000000", "currency": "USD" }
Beträge kommen als Zeichenketten zurück, und die Anzahl der Dezimalstellen ist je Feld verschieden: Das Guthaben trägt sieben, ein Bestellbetrag zwei oder vier. Lesen Sie die Zeichenkette als Dezimalzahl und formatieren Sie selbst, statt sich auf eine feste Form zu verlassen.

2) Services auflisten

Gleichen Sie den ganzen Katalog mit aktuellen Preisen, Grenzen und Refill-Kennzeichen ab.

# Anfrage curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=services" # Antwort (Auszug) [ { "service": 18071, "name": "Instagram Followers — Real, No Drop", "type": "Default", "rate": "1.00", "min": 100, "max": 100000, "dripfeed": false, "refill": true, "cancel": true, "category": "Instagram" } ]
FeldTypBedeutung
serviceNumberService-ID — der Wert, den Sie beim Bestellen als service senden
nameStringÖffentlicher Name des Service
typeStringBestellform, die der Service erwartet, zum Beispiel Default oder Custom Comments
rateStringPreis pro 1000 Einheiten
min / maxNumberErlaubter Mengenbereich
dripfeedBooleanOb runs und interval für diesen Service gelten
refillBooleanOb nach dem Abschluss ein Refill angefordert werden kann
cancelBooleanOb ein Storno angefordert werden kann
categoryStringKatalogruppe, zu der der Service gehört
Zwischenspeichern Sie diese Antwort und lesen Sie die Kennzeichen daraus. dripfeed, refill und cancel entscheiden, welche der Aufrufe unten für einen Service funktionieren, und der Katalog ist der einzige Ort, an dem sie veröffentlicht werden.

3) Eine Bestellung aufgeben

Legt eine einzelne Bestellung an. Prüfen Sie den öffentlichen Link und die Menge immer gegen min/max des Service.

ParameterPflichtBeschreibung
actionJaadd
serviceJaService-ID aus dem Katalog
linkJaÖffentliche Adresse von Profil, Beitrag oder Video
quantityJa*Einheiten, die geliefert werden (*hängt vom Servicetyp ab)
runs / intervalNeinDrip-Feed: Anzahl der Schübe und der Abstand dazwischen, in Minuten. Senden Sie beides oder keines, und nur für Services mit dripfeed: true — siehe unten
# Anfrage curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=add" \ -d "service=18071" \ -d "link=https://instagram.com/example" \ -d "quantity=10000" # Antwort { "order": 383742 }
<?php $client = curl_init('https://likesfactory.com/api/v2'); curl_setopt_array($client, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query([ 'key' => 'YOUR_API_KEY', 'action' => 'add', 'service' => 18071, 'link' => 'https://instagram.com/example', 'quantity' => 10000 ]) ]); $response = curl_exec($client); curl_close($client); echo $response;
import requests response = requests.post( "https://likesfactory.com/api/v2", data={ "key": "YOUR_API_KEY", "action": "add", "service": 18071, "link": "https://instagram.com/example", "quantity": 10000, }, timeout=30, ) print(response.json())
const body = new URLSearchParams({ key: 'YOUR_API_KEY', action: 'add', service: '18071', link: 'https://instagram.com/example', quantity: '10000' }); const response = await fetch( 'https://likesfactory.com/api/v2', { method: 'POST', body } ); console.log(await response.json());

4) Drip-Feed-Bestellungen

Ein Drip-Feed teilt eine Bestellung in gleiche Schübe, die in festem Abstand geliefert werden. Fügen Sie runs und interval demselben add-Aufruf hinzu — eine eigene Aktion gibt es nicht.

# Anfrage — 2 Schübe à 1000, eine Stunde Abstand curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=add" \ -d "service=18094" \ -d "link=https://www.tiktok.com/@example/video/123" \ -d "quantity=1000" \ -d "runs=2" \ -d "interval=60" # Antwort { "order": 383744 }
Was zu erwarten istDetail
Insgesamt geliefertquantity × runs — hier 2000 Einheiten
Insgesamt berechnetquantity × runs × rate ÷ 1000, vollständig genommen, wenn die Bestellung angelegt wird
BestellnummernDie zurückgegebene ID ist ein Elternauftrag. Jeder Schub wird als eigene Bestellung mit eigener ID angelegt
Form des StatusDer Elternauftrag gibt ein anderes Objekt zurück als eine normale Bestellung — siehe den nächsten Abschnitt
Prüfen Sie dripfeed in der Serviceliste, bevor Sie diese Parameter senden. Bei einem Service ohne Drip-Feed wird die Bestellung trotzdem angenommen, aber runs und interval werden ignoriert, und es wird ein einzelner Schub geliefert und berechnet.

5) Bestellstatus

Fragen Sie eine Bestellung oder mehrere IDs in einem Aufruf ab, für Dashboards und Automatisierungen.

ParameterPflichtBeschreibung
actionJastatus
orderJa*Eine einzelne Bestellnummer
ordersJa*Bestellnummern durch Komma getrennt, bis zu 100 pro Aufruf (*senden Sie order oder orders; sind beide vorhanden, wird order genommen, und die Antwort kommt in der Form für mehrere Bestellungen)
# Eine Bestellung curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=status" \ -d "order=383742" # Antwort { "charge": "10.00", "start_count": "", "status": "Pending", "remains": "10000", "currency": "USD" } # Mehrere Bestellungen — nach Nummer geschlüsselt, unbekannte Nummern antworten einzeln curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=status" \ -d "orders=383742,383744,900000" # Antwort { "383742": { "charge": "10.00", "start_count": "", "status": "Pending", "remains": "10000", "currency": "USD" }, "383744": { "status": "Active", "runs": "2", "orders": ["383745", "383746"] }, "900000": { "error": "Incorrect order ID" } }
FeldWas er Ihnen sagt
chargeBetrag, der für die Bestellung genommen wurde, genau und ungerundet — eine kleine Bestellung kann als "0.0225" zurückkommen. Wird zu "0.00", sobald eine Bestellung storniert und gutgeschrieben ist
start_countZähler, der vor dem Beginn der Lieferung gelesen wurde. Eine leere Zeichenkette, bis er gelesen wurde — behandeln Sie das als „noch nicht verfügbar“, nicht als Null
remainsEinheiten, die noch zu liefern sind. Bei einer stornierten Bestellung bleibt hier die ursprüngliche Menge stehen, lesen Sie also zuerst status
statusSiehe die Statustabelle unten
Ein Drip-Feed-Elternauftrag antwortet mit status, runs und einem Feld orders statt mit den üblichen Feldern — ohne charge, remains oder currency. Lesen Sie die IDs der Kinder aus orders und fragen Sie diese für den Lieferfortschritt ab.

6) Refill anfordern

Verfügbar für Services mit refill: true, sobald die Bestellung Completed ist und solange das Refill-Fenster noch offen ist.

# Eine Bestellung curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=refill" \ -d "order=383742" # Antwort — die Nummer ist eine Refill-ID, keine Bestellnummer { "refill": "4821" } # Mehrere Bestellungen, bis zu 100 pro Aufruf curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=refill" \ -d "orders=383742,383743" # Antwort — ein Eintrag pro Bestellung [ { "order": 383742, "refill": 4821 }, { "order": 383743, "refill": { "error": "The order is not completed" } } ]
Behalten Sie die Refill-ID — nur über sie können Sie die Anfrage verfolgen. The order is not completed ist auch die Antwort, wenn der Service überhaupt keinen Refill hat, lesen Sie das Kennzeichen refill also aus der Serviceliste, statt es aus dieser Meldung zu schließen.

7) Refill-Status

Verfolgen Sie eine Refill-Anfrage bis zu ihrem Ergebnis.

# Ein Refill curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=refill_status" \ -d "refill=4821" # Antwort { "status": "Completed" } # Mehrere Refills, bis zu 100 pro Aufruf curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=refill_status" \ -d "refills=4821,4822" # Antwort [ { "refill": 4821, "status": "Completed" }, { "refill": 4822, "status": { "error": "Refill not found" } } ]

8) Storno anfordern

Verfügbar für Services mit cancel: true, solange die Bestellung nicht geliefert ist.

# Eine Bestellung — die Nummer ist eine Storno-ID curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=cancel" \ -d "order=383742" # Antwort { "cancel": 317 } # Mehrere Bestellungen, bis zu 100 pro Aufruf curl -X POST https://likesfactory.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=cancel" \ -d "orders=383742,383743" # Antwort — ein Eintrag pro Bestellung [ { "order": 383742, "cancel": 317 }, { "order": 383743, "cancel": { "error": "Cancel unavailable. Try again later." } } ]
Dieser Aufruf meldet eine Storno-Anfrage an und gibt deren ID zurück. Die Bestellung behält ihren aktuellen Status, und das Guthaben ändert sich erst, wenn die Anfrage bearbeitet ist — fragen Sie also status ab, statt anzunehmen, die Bestellung sei gestoppt. Cancel unavailable heißt entweder, dass der Service kein Storno erlaubt, oder dass für diese Bestellung schon eine Anfrage besteht.

Bestellstatus

StatusBedeutung
AwaitingAngenommen und wartet darauf, aufgenommen zu werden
PendingIn der Warteschlange, noch nicht gestartet
ProcessingWird zur Lieferung geschickt
In progressDie Lieferung hat begonnen
CompletedDie Lieferung ist beendet
PartialTeilweise geliefert; der nicht gelieferte Rest wird über das Guthaben ausgeglichen
CanceledGestoppt und gutgeschrieben — charge wird zu "0.00"
FailKonnte nicht geliefert werden
ErrorDurch ein Problem mit der Anfrage oder der Lieferung gestoppt
ActiveNur bei einem Drip-Feed-Elternauftrag: Es werden noch Schübe angelegt
Fehler & gute Praxis

Eine Prüfung für jede Antwort

Eine Antwort ist ein Fehler, wenn das JSON einen Schlüssel error enthält. Diese einzige Prüfung deckt jede Anfrage auf dieser Seite ab. HTTP-Statuscodes sind hier kein verlässliches Signal — ein falscher Schlüssel antwortet mit 401 und eine unbekannte Aktion mit 404, aber Prüffehler kommen mit 200 OK und dem Grund im Text. Prüfen Sie den Text, nicht den Code.

# Python data = response.json() if isinstance(data, dict) and "error" in data: raise RuntimeError(data["error"]) # PHP $data = json_decode($response, true); if (isset($data['error'])) { throw new RuntimeException($data['error']); }

Bei Aufrufen mit mehreren IDs steht der Fehler in dem Eintrag, zu dem er gehört, eine einzige falsche ID verdirbt also nie den Rest des Stapels. Prüfen Sie jeden Eintrag.

Meldungen, mit denen Sie rechnen können

MeldungHTTPWas sie bedeutet
Invalid API key401Der Schlüssel ist falsch oder wurde durch einen neueren ersetzt
Incorrect request404action fehlt oder ist keine der Aktionen auf dieser Seite
Incorrect service ID200Kein Service mit dieser ID — gleichen Sie den Katalog neu ab
Bad link200link fehlt oder ist keine brauchbare Adresse
Quantity less than minimal 100200Unter dem Minimum des Service; die Zahl in der Meldung ist dieses Minimum
You have active order with this link. Please wait until order being completed.200Eine Bestellung für denselben Service und denselben Link läuft noch
Incorrect order ID200Keine Bestellung mit dieser ID auf Ihrem Konto
The order is not completed200Der Refill wurde angefordert, bevor die Bestellung fertig war, oder der Service hat keinen Refill
Refill not found200Keine Refill-Anfrage mit dieser ID
Cancel unavailable. Try again later.200Der Service erlaubt kein Storno, oder für diese Bestellung besteht schon eine Anfrage
Wenn eine Anfrage die Prüfung nicht besteht, wird nichts berechnet — das Guthaben bleibt unberührt, und es entsteht keine Bestellung.

Wie oft Sie Anfragen senden können

Es gibt keine veröffentlichte Grenze pro Schlüssel. Anfragen werden der Reihe nach beantwortet: dreißig gleichzeitig gesendete wurden alle beantwortet, mit insgesamt etwa zehn pro Sekunde. Nehmen Sie das als die Beschaffenheit der Straße, nicht als die Geschwindigkeit, die man fahren sollte — falls je eine Grenze gilt, kommt sie so wie jeder andere Fehlschlag auf dieser Seite: als JSON-Text mit einem Schlüssel error und nicht als HTTP 429, die Prüfung, die Sie schon haben, fängt sie also. Ein Child-Panel hat seinen eigenen Schlüssel, der getrennt von Ihrem gezählt wird.

Zwei Gewohnheiten halten eine Anbindung angenehm. Fragen Sie viele Bestellungen in einer status-Anfrage in der Form für mehrere IDs ab, statt eine Anfrage pro Bestellung zu senden, und lassen Sie in einer Schleife eine kurze Pause zwischen den Anfragen, statt sie so schnell zu senden, wie der Code sie erzeugen kann.

Gute Praxis

  • Gleichen Sie den Katalog regelmäßig ab und prüfen Sie service, link und quantity dagegen, bevor Sie bestellen.
  • Speichern Sie die Bestellnummer, die add zurückgibt, und die IDs für Refill und Storno — das sind die einzigen Griffe, die Sie bekommen.
  • Fragen Sie den Status in festem Takt ab und nicht dauernd; einmal pro Minute reicht für die meisten Anbindungen und hält Sie klar innerhalb der Grenzen von oben.
  • Schreiben Sie Bestellnummer und Fehlermeldung mit, wenn etwas schiefgeht, und nennen Sie beide in einem Ticket. Nie Ihren Schlüssel.
Sicherheits-Checkliste

Halten Sie Ihren Schlüssel und Ihre Kunden sicher

  • Rufen Sie die API nur von Ihrem Server oder einem vertrauten Backend auf — nie aus öffentlichem Browser-Code.
  • Senden Sie den Schlüssel im Anfragetext. Setzen Sie ihn nie in eine Adresse, wo er in Protokollen und im Browser-Verlauf bleiben würde.
  • Ein Konto hat einen Schlüssel. Sickert er durch, erzeugen Sie auf der Seite Konto einen neuen — der alte Schlüssel arbeitet sofort nicht mehr, aktualisieren Sie Ihre Anbindungen also vorher.
  • Senden Sie nie Passwörter von Social-Media-Konten — nur öffentliche Links.
  • Schreiben Sie für Support-Tickets Bestellnummern und Fehlermeldungen mit, nicht den vollständigen API-Schlüssel.
Child-Panels

Ein fertiger Shop, ohne Code zu schreiben

Sie wollen Ihren eigenen Shop, ohne ihn zu bauen? Nehmen Sie ein Child-Panel — ein vollständig gebrandetes Panel auf Ihrer Domain, mit Ihrem Logo und Ihren Endkundenpreisen. Die Lieferung läuft über Ihr LikesFactory-Guthaben. Alle Einzelheiten stehen auf der Seite zu den Child-Panels.

Als API-AnbieterAm besten, wenn Sie schon eine eigene Website, ein Panel-Skript oder einen eigenen Shop betreiben — nehmen Sie diese Dokumentation.
Als Child-PanelAm besten, wenn Sie schnell einen eigenen Shop wollen, ohne ein ganzes Produkt zu bauen.
Ihre MargeKaufen Sie zum Großhandelspreis bei LikesFactory und verkaufen Sie zu Ihren eigenen Endkundenpreisen.

Child-Panels ansehen →

API-FAQ

Kurze Antworten für Entwickler

Nein. Für die meisten Nutzer genügt die Oberfläche der Website. Die API ist freiwillig und für Reseller, Agenturen und Automatisierungen gedacht.

Ja. Die API ist einfaches HTTPS mit Antworten in JSON, jedes Backend kann sie also anbinden — eine eigene Seite, eine Mobil-App, ein Bot oder ein CRM. Sie bleibt außerdem kompatibel mit der üblichen SMM-Reseller-Software und mit Child-Panel-Skripten.

Melden Sie sich an, öffnen Sie die Seite Konto und drücken Sie im Block API-Schlüssel auf Neuen Schlüssel erzeugen. Der Schlüssel wird einmal angezeigt, kopieren Sie ihn also auf der Stelle und bewahren Sie ihn sicher auf Ihrem Server auf. Ein weiterer Schlüssel ersetzt den aktuellen sofort.

Ja, bei Services mit dripfeed: true im Katalog. Fügen Sie runs und interval demselben add-Aufruf hinzu. Bei einem Service ohne Drip-Feed werden diese Parameter ignoriert und ein einzelner Schub geliefert, lesen Sie das Kennzeichen also aus action=services, bevor Sie sie senden.

Lesen Sie zuerst die Statusantwort — sie trägt den aktuellen Zustand und wie viel noch offen ist. Bei einer Partial-Bestellung wird der nicht gelieferte Rest über Ihr Guthaben ausgeglichen, und eine stornierte Bestellung wird vollständig gutgeschrieben, wobei charge zu "0.00" wird. Für alles Ungeklärte eröffnen Sie ein Ticket mit der Bestellnummer — nie mit Ihrem API-Schlüssel.

Bereit für die Anbindung?

Legen Sie ein Konto an, erzeugen Sie Ihren Schlüssel und führen Sie einen Aufruf für Guthaben oder Services aus, bevor Sie live gehen.

← Zurück zur Startseite