Dokumentasi API Panel SMM
Panel SMM dengan API v2 standar: pesan layanan 4SNS PLUS dari bot Telegram atau panel Anda sendiri.
Apa itu API panel SMM?
API panel SMM memungkinkan program mengambil daftar layanan, membuat pesanan, serta mengecek status pesanan dan saldo tanpa membuka website. 4SNS PLUS mendukung format API v2 panel SMM standar yang dipakai banyak panel dan bot, jadi kode yang sudah Anda hubungkan ke panel lain langsung berfungsi setelah Anda mengganti URL dan key.
Harga dan saldo di API sama dengan di website. Nilai rate di respons services sama dengan harga per 1,000 (dolar AS) di daftar harga, dan pesanan yang dibuat dengan add dipotong dari saldo Anda persis seperti pesanan web serta muncul di riwayat pesanan di dashboard. Dana dari pesanan yang dibatalkan atau parsial kembali ke saldo yang sama.
Dasar
| Endpoint | https://4snsplus.com/api/v2 |
| Metode | POST |
| Format request | Field form (application/x-www-form-urlencoded, multipart) atau body JSON |
| Respons | JSON; error juga dikirim sebagai HTTP 200 dengan field error |
| Autentikasi | Parameter key (API key Anda) di setiap request |
| Batas request | 300 request per menit per key |
| Mata uang | Dolar AS (USD) |
Contoh request
curl -X POST https://4snsplus.com/api/v2 \ -d key=YOUR_API_KEY \ -d action=balance
import requests
r = requests.post("https://4snsplus.com/api/v2", data={
"key": "YOUR_API_KEY",
"action": "add",
"service": 2210,
"link": "https://t.me/yourchannel",
"quantity": 1000,
})
print(r.json()) # {"order": 31877} or {"error": "..."}Bagaimana cara mendapatkan API key?
Setelah isi saldo pertama masuk ke saldo Anda, Anda bisa membuat API key dari menu API key di dashboard. Key hanya ditampilkan sekali saat dibuat, jadi simpan di tempat yang aman. Membuat key baru langsung menonaktifkan key sebelumnya.
Key ini terpisah dari token akun Anda. Masukkan hanya API key ke bot atau server Anda, jangan pernah token akun. Jika Anda merasa key Anda bocor, cukup buat key baru di layar API key.
Daftar layanan (services)
Mengembalikan semua layanan yang bisa Anda pesan. rate adalah harga per 1,000 (USD), dan jika type adalah Package, itu harga satu paket. Jika type adalah Custom Comments, Anda mengirim daftar komentar sebagai ganti jumlah. category adalah nama platform ditambah nama grup.
| Parameter | Keterangan |
|---|---|
| key | API key Anda |
| action | services |
Contoh respons
[
{
"service": 2210,
"name": "Members - 30 Days Non Drop - 30 Days Refill",
"type": "Default",
"category": "Telegram - Members (30 Days Non Drop)",
"rate": "1.4300",
"min": "100",
"max": "50000",
"refill": true,
"cancel": false
}
]Membuat pesanan (add)
Membuat pesanan dan memotong jumlahnya dari saldo Anda. Jumlahnya adalah harga per 1,000 dikali kuantitas; untuk Package adalah harga paket, dan untuk Custom Comments jumlah baris komentar menjadi kuantitas. Pesanan tersedia untuk akun yang isi saldo pertamanya sudah masuk. Nilai order di respons adalah ID pesanan Anda.
| Parameter | Keterangan |
|---|---|
| key | API key Anda |
| action | add |
| service | ID layanan (service dari services) |
| link | Link publik. Untuk Telegram: t.me/name, link undangan privat t.me/+code, postingan t.me/name/123, bot t.me/botname. @name juga diterima |
| quantity | Kuantitas (di antara min dan max). Tidak diperlukan untuk Package dan Custom Comments |
| comments | Khusus Custom Comments. Satu komentar per baris, maksimal 10,000 baris, maksimal 500 karakter per baris |
Contoh respons
{
"order": 31877
}Status pesanan (status)
Status satu pesanan. charge adalah jumlah yang benar-benar dibayar setelah refund (USD, 6 desimal), start_count adalah jumlah saat pesanan dimulai, dan remains adalah kuantitas yang belum terkirim.
| Parameter | Keterangan |
|---|---|
| key | API key Anda |
| action | status |
| order | ID pesanan |
Contoh respons
{
"charge": "1.430000",
"start_count": "8120",
"status": "In progress",
"remains": "410",
"currency": "USD"
}Status banyak pesanan (status, orders)
Mengecek hingga 100 pesanan sekaligus, dengan ID pesanan dipisahkan koma. ID yang tidak ada atau bukan milik akun Anda mendapat error di posisinya.
| Parameter | Keterangan |
|---|---|
| key | API key Anda |
| action | status |
| orders | Daftar ID pesanan, misalnya 1,10,100 |
Contoh respons
{
"1": { "charge": "0.300000", "start_count": "120", "status": "Completed", "remains": "0", "currency": "USD" },
"10": { "error": "Incorrect order ID" }
}Meminta isi ulang (refill)
Untuk pesanan layanan dengan masa isi ulang yang berakhir sebagai Completed atau Partial, ajukan dalam masa isi ulang yang dihitung sejak pesanan selesai. Setiap pesanan bisa punya satu permintaan terbuka, dengan jeda 24 jam antar permintaan.
| Parameter | Keterangan |
|---|---|
| key | API key Anda |
| action | refill |
| order | ID pesanan |
Contoh respons
{
"refill": 512
}Status isi ulang (refill_status)
Status satu permintaan isi ulang.
| Parameter | Keterangan |
|---|---|
| key | API key Anda |
| action | refill_status |
| refill | ID isi ulang (refill dari respons refill) |
Contoh respons
{
"status": "Completed"
}Saldo (balance)
Saldo Anda (USD, 6 desimal).
| Parameter | Keterangan |
|---|---|
| key | API key Anda |
| action | balance |
Contoh respons
{
"balance": "84.120000",
"currency": "USD"
}Nilai status pesanan
| Pending | Diterima. Sedang diteruskan, menunggu dimulai, atau operator sedang memeriksa hasil penyerahan |
| In progress | Sedang dikirim |
| Completed | Terkirim penuh |
| Partial | Terkirim sebagian. Bagian yang belum terkirim di-refund ke saldo Anda |
| Canceled | Tidak terkirim. Refund penuh ke saldo Anda |
Nilai status isi ulang
| Pending | Permintaan isi ulang diterima |
| In progress | Isi ulang sedang dikirim |
| Completed | Isi ulang terkirim |
| Rejected | Permintaan isi ulang tidak disetujui |
Pesan error
Error dikirim sebagai JSON dengan field error di respons HTTP 200. Di kode Anda, cek field error lebih dulu.
{
"error": "Not enough funds on balance"
}| Invalid API key | Key kosong, salah, atau sudah diganti key baru |
| Too many requests | Lebih dari 300 request per menit. Coba lagi sebentar |
| Incorrect action | Nilai action tidak ada di daftar di atas |
| Add funds first | Pesanan dari akun yang isi saldo pertamanya belum masuk |
| Incorrect service ID | Tidak ada layanan yang bisa dipesan dengan ID tersebut |
| Incorrect link | Link kosong atau bukan alamat web |
| Quantity out of range | Di bawah kuantitas minimum atau di atas maksimum |
| Incorrect comments | Custom Comments kosong atau melebihi 10,000 baris atau 500 karakter per baris |
| Not enough funds on balance | Saldo lebih kecil dari jumlah pesanan. Isi saldo lalu pesan lagi |
| Incorrect order ID | ID pesanan tersebut bukan milik akun Anda |
| Refill is not available for this service | Layanan tidak punya masa isi ulang |
| Order is not finished yet | Isi ulang tersedia setelah pesanan Completed atau Partial |
| Refill period has ended | Masa isi ulang, dihitung sejak pesanan selesai, sudah lewat |
| Refill already requested | Pesanan ini sudah punya permintaan isi ulang yang terbuka |
| Refill already requested, try again later | Belum 24 jam sejak permintaan terakhir |
| Incorrect refill ID | ID isi ulang tersebut bukan milik akun Anda |
Bagaimana cara menghubungkan API panel SMM ke bot Telegram?
1. Simpan daftar layanan
Panggil services beberapa kali sehari dan simpan ID layanan, nama, rate, min, dan max di data Anda sendiri. Hitung harga untuk pelanggan dengan menambahkan margin Anda ke rate, dan gunakan ID layanan yang tersimpan apa adanya saat memesan.
2. Cek kuantitas dan link sebelum memesan
Mengecek lebih dulu bahwa kuantitas ada di antara min dan max serta link berformat t.me mengurangi error Quantity out of range dan Incorrect link. Mengecek saldo dengan balance sebelumnya juga membantu.
3. Cek status secara batch
Cek pesanan yang sedang berjalan setiap beberapa menit dalam batch 100 dengan parameter orders. Cara ini tetap jauh di bawah batas 300 request per menit per key. Saat pesanan menjadi Completed, Partial, atau Canceled, beri tahu pelanggan Anda hasilnya.
4. Isi ulang hanya pesanan yang sudah selesai
Saat pesanan layanan isi ulang menjadi Completed atau Partial, Anda bisa mengirim refill. Simpan ID isi ulang dari respons dan pantau progresnya dengan refill_status.
