Satu endpoint, hanya POST, balasan JSON. Katalog dan harga yang sama seperti di panel, dari situs, bot, atau spreadsheet-mu.
Buat di halaman akun. Kunci ini mengotorisasi pengeluaran, jadi tempatnya di konfigurasi server. Ganti jika pernah menyentuh browser, obrolan, atau tangkapan layar.
Jumlah minimum dan maksimum ditetapkan secara individual — satu layanan mulai dari 10 unit, yang berikutnya dari 500 000. Baca dari services dan validasi sebelum mengirim pesanan.
Tidak ada langkah faktur. add hanya berhasil selama saldo menutup pesanan, jadi polling balance dan hentikan antrean Anda sebelum mencapai nol.
PerfectPanel dan sebagian besar skrip panel membaca format ini secara native. Di admin Anda, buka Providers → Add provider dan tempel alamat situs — https://autosmo.com/, itu saja, bukan endpoint. Tambahkan kunci Anda, sinkronkan katalog, tetapkan markup Anda.
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"}
Layanan 6758 adalah id asli dari katalog. Jumlah di bawah minimum sebuah layanan ditolak, bukan dibulatkan ke atas.
Tempel ini ke ChatGPT, Claude, atau Cursor, sebutkan bahasa Anda, dan Anda mendapat klien yang berfungsi. Ia membawa daftar panggilan lengkap plus perilaku yang mudah salah.
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.
Tidak di JavaScript front-end, tidak di bundle mobile, tidak di repositori publik. Siapa pun yang memegangnya bisa membuat pesanan atas saldo Anda.
Karena add tidak punya kunci idempotensi, percobaan ulang otomatis adalah cara satu pesanan pelanggan menjadi dua pesanan berbayar.
Tarif, batas, dan ketersediaan berubah saat pemasok mengubah milik mereka. Salinan lokal yang usang menjual dengan harga yang tak lagi Anda miliki.
Petakan remains ke logika pengembalian dana Anda sendiri. Menandai pengiriman parsial sebagai selesai adalah cara tercepat mendapatkan chargeback.
Buat pesanan terkecil yang diizinkan katalog, polling hingga selesai, dan pastikan sisi Anda cocok dengan charge sampai ke sennya sebelum mengalihkan lalu lintas.
| Metode HTTP | POST |
| URL API | https://autosmo.com/api/v2 |
| Format respons | JSON |
| Parameters | Description |
|---|---|
| key | Your API key |
| action | services |
Contoh respons
[
{
"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
}
]
Contoh respons
{
"order": 23501
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | status |
| order | Order ID |
Contoh respons
{
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | status |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Contoh respons
{
"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"
}
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | refill |
| order | Order ID |
Contoh respons
{
"refill": "1"
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | refill |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Contoh respons
[
{
"order": 1,
"refill": 1
},
{
"order": 2,
"refill": 2
},
{
"order": 3,
"refill": {
"error": "Incorrect order ID"
}
}
]
| Parameters | Description |
|---|---|
| key | Your API key |
| action | refill_status |
| refill | Refill ID |
Contoh respons
{
"status": "Completed"
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | refill_status |
| refills | Refill IDs (separated by a comma, up to 100 IDs) |
Contoh respons
[
{
"refill": 1,
"status": "Completed"
},
{
"refill": 2,
"status": "Rejected"
},
{
"refill": 3,
"status": {
"error": "Refill not found"
}
}
]
| Parameters | Description |
|---|---|
| key | Your API key |
| action | cancel |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Contoh respons
[
{
"order": 9,
"cancel": {
"error": "Incorrect order ID"
}
},
{
"order": 2,
"cancel": 1
}
]
| Parameters | Description |
|---|---|
| key | Your API key |
| action | balance |
Contoh respons
{
"balance": "100.84292",
"currency": "USD"
}
Contoh kode PHP