Entwickler

API v2

Ein Endpunkt, nur POST, JSON zurück. Gleicher Katalog und gleiche Preise wie im Panel, von deiner eigenen Seite, Bot oder Tabelle.

Vier Dinge, die man zuerst wissen sollte

01

Dein Schlüssel ist deine Geldbörse

Erzeuge ihn auf der Kontoseite. Er autorisiert Ausgaben und gehört daher in die Serverkonfiguration. Wechsle ihn, sobald er je in einen Browser, einen Chat oder einen Screenshot geraten ist.

02

Limits gelten pro Dienst

Mindest- und Höchstmenge werden einzeln festgelegt — ein Dienst startet bei 10 Einheiten, der nächste bei 500 000. Lies sie aus services und prüfe sie, bevor du eine Bestellung sendest.

03

Bestellungen verbrauchen das Guthaben

Es gibt keinen Rechnungsschritt. add gelingt nur, solange das Guthaben die Bestellung deckt; frage also balance ab und stoppe deine Warteschlange, bevor es null erreicht.

04

Schon ein Panel? Kein Code nötig

PerfectPanel und die meisten Panel-Skripte lesen dieses Format nativ. Gehe in deinem Admin zu Providers → Add provider und füge die Website-Adresse ein — https://autosmo.com/, nur die, nicht den Endpoint. Füge deinen Schlüssel hinzu, synchronisiere den Katalog, lege deinen Aufschlag fest.

Eine Anfrage, von Anfang bis Ende

durchgerechnetes Beispiel
eine Bestellung aufgeben und zurücklesen
curl -X POST https://autosmo.com/api/v2 \\
  -d key=YOUR_KEY \\
  -d action=add \\
  -d service=6758 \\
  -d link=https://instagram.com/yourprofile \\
  -d quantity=100

{"order": 8231455}

curl -X POST https://autosmo.com/api/v2 -d key=YOUR_KEY -d action=status -d order=8231455

{"charge": "0.016", "start_count": "2841", "status": "Completed",
 "remains": "0", "currency": "USD"}

Dienst 6758 ist eine echte id aus dem Katalog. Mengen unter dem Minimum eines Dienstes werden abgelehnt, nicht aufgerundet.

Übergib es einem Agenten

kopieren & einfügen

Füge dies in ChatGPT, Claude oder Cursor ein, nenne deine Sprache, und du erhältst einen funktionierenden Client. Er enthält die vollständige Aufrufliste plus das Verhalten, bei dem man leicht Fehler macht.

Integrations-Prompt
Build me a client for the AutoSMO SMM API (v2), in a language I will name.

ENDPOINT
POST https://autosmo.com/api/v2 — form-encoded body, JSON response, no other verbs.
Authentication is the field `key`, sent with every call. Server-side only.

CALLS
action=services -> array of { service, name, type, category, rate (per 1000),
                              min, max, refill:bool, cancel:bool }
action=add      params: service, link, quantity [, runs, interval]  -> { "order": id }
                custom comments: service, link, comments
action=status   params: order | orders (comma separated, max 100)
                -> { charge, start_count, status, remains, currency }
action=refill   params: order | orders (max 100)   -> { "refill": id }
action=refill_status  params: refill | refills     -> { "status": ... }
action=cancel   params: orders (max 100)
action=balance                                      -> { balance, currency }

BEHAVIOUR THAT COSTS MONEY IF IGNORED
- A timed-out `add` is not a failed `add`. The order may exist and be paid for.
  Surface it for a human; do not resend it on a timer.
- Quantity outside a service's own min/max is refused outright, so read those
  bounds from the catalogue and check before sending.
- Status is polled with `orders` and up to 100 ids at once. Per-order polling
  works in testing and dies in production.
- A 200 response can still contain per-entry errors when several ids were
  requested. Walk the entries; do not trust the envelope.
- "Partial" is a delivery that stopped early: `remains` is the shortfall and
  `charge` is the real cost. Pass that difference back to your buyer.
- Refill and cancel exist only where the catalogue flags say so.

WHAT I EXPECT FROM YOU
- One function per call, with the response parsed into typed structures.
- My order reference stored next to the id this API returns.
- Two background jobs: refresh the catalogue, and follow orders still open.
- A rehearsal switch that logs calls without sending them, and a single
  end-to-end test using the cheapest service in the catalogue.

Checkliste vor dem Livegang

Der Schlüssel steckt in nichts, was ein Kunde öffnen kann

Nicht im Frontend-JavaScript, nicht in einem Mobile-Bundle, nicht in einem öffentlichen Repository. Wer ihn besitzt, kann Bestellungen zulasten deines Guthabens aufgeben.

Timeouts werden für einen Menschen eingereiht, nicht wiederholt

Da add keinen Idempotenzschlüssel hat, wird aus einer Kundenbestellung durch einen automatischen Wiederholversuch zwei bezahlte Bestellungen.

Deine Katalogkopie wird nach Zeitplan aktualisiert

Preise, Limits und Verfügbarkeit ändern sich, wenn die Anbieter ihre ändern. Eine veraltete lokale Kopie verkauft zu Preisen, die du nicht mehr hast.

Teillieferungen erreichen deinen Kunden als Teillieferung

Bilde remains in deine eigene Rückerstattungslogik ab. Eine Teillieferung als abgeschlossen zu markieren ist der schnellste Weg zu einer Rückbuchung.

Du hast eine echte Bestellung komplett verfolgt

Gib die kleinste Bestellung auf, die der Katalog erlaubt, frage sie bis zum Abschluss ab und bestätige, dass deine Seite auf den Cent mit charge übereinstimmt, bevor du den Traffic umleitest.

Vollständige Referenz, vom Panel generiert

API

HTTP-Methode POST
API-URL https://autosmo.com/api/v2
Antwortformat JSON

Service list

Parameters Description
key Your API key
action services

Beispielantwort

[
    {
        "service": 1,
        "name": "Followers",
        "type": "Default",
        "category": "First Category",
        "rate": "0.90",
        "min": "50",
        "max": "10000",
        "refill": true,
        "cancel": true
    },
    {
        "service": 2,
        "name": "Comments",
        "type": "Custom Comments",
        "category": "Second Category",
        "rate": "8",
        "min": "10",
        "max": "1500",
        "refill": false,
        "cancel": true
    }
]

Add order

Beispielantwort

{
    "order": 23501
}

Order status

Parameters Description
key Your API key
action status
order Order ID

Beispielantwort

{
    "charge": "0.27819",
    "start_count": "3572",
    "status": "Partial",
    "remains": "157",
    "currency": "USD"
}

Multiple orders status

Parameters Description
key Your API key
action status
orders Order IDs (separated by a comma, up to 100 IDs)

Beispielantwort

{
    "1": {
        "charge": "0.27819",
        "start_count": "3572",
        "status": "Partial",
        "remains": "157",
        "currency": "USD"
    },
    "10": {
        "error": "Incorrect order ID"
    },
    "100": {
        "charge": "1.44219",
        "start_count": "234",
        "status": "In progress",
        "remains": "10",
        "currency": "USD"
    }
}

Create refill

Parameters Description
key Your API key
action refill
order Order ID

Beispielantwort

{
    "refill": "1"
}

Create multiple refill

Parameters Description
key Your API key
action refill
orders Order IDs (separated by a comma, up to 100 IDs)

Beispielantwort

[
    {
        "order": 1,
        "refill": 1
    },
    {
        "order": 2,
        "refill": 2
    },
    {
        "order": 3,
        "refill": {
            "error": "Incorrect order ID"
        }
    }
]

Get refill status

Parameters Description
key Your API key
action refill_status
refill Refill ID

Beispielantwort

{
    "status": "Completed"
}

Get multiple refill status

Parameters Description
key Your API key
action refill_status
refills Refill IDs (separated by a comma, up to 100 IDs)

Beispielantwort

[
    {
        "refill": 1,
        "status": "Completed"
    },
    {
        "refill": 2,
        "status": "Rejected"
    },
    {
        "refill": 3,
        "status": {
            "error": "Refill not found"
        }
    }
]

Create cancel

Parameters Description
key Your API key
action cancel
orders Order IDs (separated by a comma, up to 100 IDs)

Beispielantwort

[
    {
        "order": 9,
        "cancel": {
            "error": "Incorrect order ID"
        }
    },
    {
        "order": 2,
        "cancel": 1
    }
]

User balance

Parameters Description
key Your API key
action balance

Beispielantwort

{
    "balance": "100.84292",
    "currency": "USD"
}
Beispiel für PHP-Code