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.
https://likesfactory.com/api/v2Von der Registrierung bis zur ersten API-Anfrage in Minuten
Konto erstellen
Registrieren und E-Mail bestätigen.
Aufladen
Guthaben aufladen, bevor Sie echte Bestellungen aufgeben.
API-Schlüssel kopieren
Öffnen Sie Konto, erzeugen Sie einen Schlüssel und kopieren Sie ihn — er wird einmal gezeigt.
Eine Testanfrage senden
Fangen Sie mit action=balance oder services an.
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.
| Parameter | Pflicht | Beschreibung |
|---|---|---|
key | Ja | Der API-Schlüssel Ihres Kontos |
action | Ja | Name der API-Aktion (add, status, services, …) |
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.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.
2) Services auflisten
Gleichen Sie den ganzen Katalog mit aktuellen Preisen, Grenzen und Refill-Kennzeichen ab.
| Feld | Typ | Bedeutung |
|---|---|---|
service | Number | Service-ID — der Wert, den Sie beim Bestellen als service senden |
name | String | Öffentlicher Name des Service |
type | String | Bestellform, die der Service erwartet, zum Beispiel Default oder Custom Comments |
rate | String | Preis pro 1000 Einheiten |
min / max | Number | Erlaubter Mengenbereich |
dripfeed | Boolean | Ob runs und interval für diesen Service gelten |
refill | Boolean | Ob nach dem Abschluss ein Refill angefordert werden kann |
cancel | Boolean | Ob ein Storno angefordert werden kann |
category | String | Katalogruppe, zu der der Service gehört |
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.
| Parameter | Pflicht | Beschreibung |
|---|---|---|
action | Ja | add |
service | Ja | Service-ID aus dem Katalog |
link | Ja | Öffentliche Adresse von Profil, Beitrag oder Video |
quantity | Ja* | Einheiten, die geliefert werden (*hängt vom Servicetyp ab) |
runs / interval | Nein | Drip-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 |
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.
| Was zu erwarten ist | Detail |
|---|---|
| Insgesamt geliefert | quantity × runs — hier 2000 Einheiten |
| Insgesamt berechnet | quantity × runs × rate ÷ 1000, vollständig genommen, wenn die Bestellung angelegt wird |
| Bestellnummern | Die zurückgegebene ID ist ein Elternauftrag. Jeder Schub wird als eigene Bestellung mit eigener ID angelegt |
| Form des Status | Der Elternauftrag gibt ein anderes Objekt zurück als eine normale Bestellung — siehe den nächsten Abschnitt |
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.
| Parameter | Pflicht | Beschreibung |
|---|---|---|
action | Ja | status |
order | Ja* | Eine einzelne Bestellnummer |
orders | Ja* | 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) |
| Feld | Was er Ihnen sagt |
|---|---|
charge | Betrag, 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_count | Zä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 |
remains | Einheiten, die noch zu liefern sind. Bei einer stornierten Bestellung bleibt hier die ursprüngliche Menge stehen, lesen Sie also zuerst status |
status | Siehe die Statustabelle unten |
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.
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.
8) Storno anfordern
Verfügbar für Services mit cancel: true, solange die Bestellung nicht geliefert ist.
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
| Status | Bedeutung |
|---|---|
Awaiting | Angenommen und wartet darauf, aufgenommen zu werden |
Pending | In der Warteschlange, noch nicht gestartet |
Processing | Wird zur Lieferung geschickt |
In progress | Die Lieferung hat begonnen |
Completed | Die Lieferung ist beendet |
Partial | Teilweise geliefert; der nicht gelieferte Rest wird über das Guthaben ausgeglichen |
Canceled | Gestoppt und gutgeschrieben — charge wird zu "0.00" |
Fail | Konnte nicht geliefert werden |
Error | Durch ein Problem mit der Anfrage oder der Lieferung gestoppt |
Active | Nur bei einem Drip-Feed-Elternauftrag: Es werden noch Schübe angelegt |
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.
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
| Meldung | HTTP | Was sie bedeutet |
|---|---|---|
Invalid API key | 401 | Der Schlüssel ist falsch oder wurde durch einen neueren ersetzt |
Incorrect request | 404 | action fehlt oder ist keine der Aktionen auf dieser Seite |
Incorrect service ID | 200 | Kein Service mit dieser ID — gleichen Sie den Katalog neu ab |
Bad link | 200 | link fehlt oder ist keine brauchbare Adresse |
Quantity less than minimal 100 | 200 | Unter 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. | 200 | Eine Bestellung für denselben Service und denselben Link läuft noch |
Incorrect order ID | 200 | Keine Bestellung mit dieser ID auf Ihrem Konto |
The order is not completed | 200 | Der Refill wurde angefordert, bevor die Bestellung fertig war, oder der Service hat keinen Refill |
Refill not found | 200 | Keine Refill-Anfrage mit dieser ID |
Cancel unavailable. Try again later. | 200 | Der Service erlaubt kein Storno, oder für diese Bestellung besteht schon eine Anfrage |
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,linkundquantitydagegen, bevor Sie bestellen. - Speichern Sie die Bestellnummer, die
addzurü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.
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.
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.
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