Développeurs

API v2

Un seul endpoint, POST uniquement, réponse JSON. Le même catalogue et les mêmes prix que dans le panel, depuis votre site, bot ou tableur.

Quatre choses à savoir d'abord

01

Votre clé est votre portefeuille

Générez-la sur la page du compte. Elle autorise les dépenses, sa place est donc dans la configuration du serveur. Renouvelez-la si elle est un jour passée par un navigateur, un chat ou une capture d'écran.

02

Les limites sont propres à chaque service

Les quantités minimale et maximale sont définies individuellement : un service commence à 10 unités, le suivant à 500 000. Lisez-les depuis services et validez avant d'envoyer une commande.

03

Les commandes puisent dans le solde

Il n'y a pas d'étape de facture. add ne réussit que tant que le solde couvre la commande ; interrogez donc balance et arrêtez votre file avant qu'il n'atteigne zéro.

04

Vous avez déjà un panel ? Aucun code

PerfectPanel et la plupart des scripts de panel lisent ce format nativement. Dans votre admin, allez dans Providers → Add provider et collez l'adresse du sitehttps://autosmo.com/, rien que ça, pas l'endpoint. Ajoutez votre clé, synchronisez le catalogue, fixez votre marge.

Une requête, du début à la fin

exemple détaillé
passer une commande et la relire
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"}

Le service 6758 est un id réel du catalogue. Les quantités inférieures au minimum d'un service sont rejetées, pas arrondies au-dessus.

Confiez-le à un agent

copier & coller

Collez ceci dans ChatGPT, Claude ou Cursor, nommez votre langage et vous obtenez un client fonctionnel. Il embarque la liste complète des appels ainsi que le comportement où l'on se trompe facilement.

prompt d'intégration
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.

Liste de contrôle avant la mise en production

La clé n'est dans rien qu'un client puisse ouvrir

Ni dans le JavaScript front-end, ni dans un bundle mobile, ni dans un dépôt public. Quiconque la détient peut passer des commandes sur votre solde.

Les délais dépassés sont mis en file pour un humain, pas réessayés

Comme add n'a pas de clé d'idempotence, une nouvelle tentative automatique transforme une commande client en deux commandes payées.

Votre copie du catalogue se rafraîchit selon un planning

Les tarifs, les limites et la disponibilité changent quand les fournisseurs changent les leurs. Une copie locale périmée vend à des prix que vous n'avez plus.

Les commandes partielles arrivent partielles chez votre client

Reliez remains à votre propre logique de remboursement. Marquer une livraison partielle comme terminée est le moyen le plus rapide de récolter une rétrofacturation.

Vous avez suivi une vraie commande de bout en bout

Passez la plus petite commande autorisée par le catalogue, interrogez-la jusqu'à son achèvement et confirmez que votre côté correspond à charge au centime près avant de basculer le trafic.

Référence complète, générée par le panel

API

Méthode HTTP POST
URL de l'API https://autosmo.com/api/v2
Format de réponse JSON

Service list

Parameters Description
key Your API key
action services

Exemple de réponse

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

Exemple de réponse

{
    "order": 23501
}

Order status

Parameters Description
key Your API key
action status
order Order ID

Exemple de réponse

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

Exemple de réponse

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

Exemple de réponse

{
    "refill": "1"
}

Create multiple refill

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

Exemple de réponse

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

Exemple de réponse

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

Exemple de réponse

[
    {
        "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)

Exemple de réponse

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

User balance

Parameters Description
key Your API key
action balance

Exemple de réponse

{
    "balance": "100.84292",
    "currency": "USD"
}
Exemple de code PHP