Teknis
Standar API v2 panel SMM
Terakhir diperbarui oleh Tim Redaksi PanelCompare, dibaca 5 menit
Apa itu API v2 panel SMM?
API ini adalah satu endpoint POST, lazimnya di /api/v2, yang menerima badan application/x-www-form-urlencoded dan mengembalikan JSON. Autentikasinya berupa parameter key di badan request, bukan di header. Tidak ada negosiasi versi, tidak ada penandatanganan request, dan tidak ada nonce (spesifikasi diverifikasi terhadap justanotherpanel.com/api, 2026-09-06).
Spesifikasi ini berasal dari script panel yang dominan dan sudah disalin begitu luas sehingga kini menjadi standar de facto industri. Fakta itulah yang ada di balik hampir semua hal lain tentang pasar ini: panel bisa diluncurkan dalam satu sore hanya dengan mengarahkan script ke API sebuah provider, itu sebabnya ada ribuan panel dan itu sebabnya perbedaan antarpanel sangat tipis.
Key-nya adalah rahasia bearer berumur panjang
Karena API key dikirim di badan request tanpa penandatanganan, nonce, atau stempel waktu, spesifikasinya tidak punya perlindungan replay dan tidak punya masa kedaluwarsa. Siapa pun yang memegang key itu bisa membelanjakan saldo Anda dan membaca setiap link yang pernah Anda pesan. Ganti key setelah menghubungkan tool pihak ketiga apa pun.
Action apa saja yang disediakan API?
| Action | Parameter | Yang dikembalikan |
|---|---|---|
| services | key, action | Array baris katalog: service, name, type, category, rate, min, max, refill, cancel |
| add | key, action, service, link, ditambah parameter khusus tipe pesanan | id pesanan baru |
| status | key, action, order | charge, start_count, status, remains, currency |
| status (multi) | key, action, orders (dipisahkan koma, maks. 100) | Objek dengan id pesanan sebagai kunci |
| refill | key, action, order (atau orders, dipisahkan koma) | id refill, atau array pasangan order/refill |
| refill_status | key, action, refill (atau refills, dipisahkan koma) | Status refill |
| cancel | key, action, orders (dipisahkan koma) | Hasil pembatalan per pesanan |
| balance | key, action | balance dan currency |
Sumber: Spesifikasi SMM Panel API v2, diverifikasi terhadap justanotherpanel.com/api, 2026-09-06.
Perhatikan bahwa spesifikasi bakunya tidak punya action multi_status tersendiri. Status banyak pesanan memakai action status yang sama dengan parameter jamak orders, dibatasi 100 id per request. Detail inilah yang menjegal sebagian besar integrasi pertama.
Seperti apa sebenarnya request dan responsnya?
POST /api/v2
Content-Type: application/x-www-form-urlencoded
key=YOUR_KEY&action=services
// 200 OK
[
{
"service": 1,
"name": "Followers",
"type": "Default",
"category": "First Category",
"rate": "0.90",
"min": "50",
"max": "10000",
"refill": true,
"cancel": true
}
]POST /api/v2
key=YOUR_KEY&action=add&service=1&link=https://example.com/p&quantity=1000
// 200 OK
{ "order": 23501 }
POST /api/v2
key=YOUR_KEY&action=status&order=23501
// 200 OK
{
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
}Field rate adalah harga per 1.000 dalam mata uang akun, dikembalikan sebagai string. Katalog sungguhan berisi 3.000–8.000 baris, sehingga panggilan services menghasilkan satu respons besar, bukan respons yang dibagi per halaman.
Jebakan apa yang paling sering merusak integrasi pertama?
- Error biasanya dikembalikan dengan HTTP 200. Di sebagian besar panel, request yang gagal kembali sebagai 200 dengan objek error di badannya, dan sebagian panel menjawab key yang salah dengan 401 dan bentuk JSON yang sama, sehingga kode status tidak bisa diandalkan dan setiap klien wajib mem-parse badannya untuk mendeteksi kegagalan.
- Angka datang sebagai string. rate, min, max, charge, start_count, dan remains semuanya string berkutip; membandingkannya sebagai angka tanpa konversi akan salah secara diam-diam.
- Multi-status adalah parameter jamak, bukan action tersendiri, dan dibatasi 100 id.
- Jumlah drip-feed berlaku per run. Panggilan add dengan runs=10 mengirim dan menagih quantity × 10.
- ID layanan bersifat lokal per panel dan bisa berubah. Panel bisa mengarahkan sebuah id ke provider hulu lain, sehingga id yang tersimpan bisa diam-diam berubah makna.
- refill dan cancel hanya berfungsi jika baris katalog mencantumkannya, dan cancel biasanya hanya sebelum pengiriman dimulai.
Parameter apa yang dibutuhkan setiap tipe pesanan?
Setiap panggilan add butuh service dan link. Apa lagi yang dibutuhkan ditentukan oleh field type di baris katalog, dan syaratnya tidak bisa ditebak. Tabel ini memuat semuanya.
| Tipe pesanan | Parameter tambahan |
|---|---|
| Default / Drip-feed | quantity, runs (opsional), interval (opsional, menit) |
| Custom Comments | comments (daftar yang dipisahkan baris baru) |
| Custom Comments Package | comments |
| Mentions (daftar pengguna / hashtag / daftar kustom) | quantity, usernames, hashtags |
| Mentions Hashtag | quantity, hashtag (akun yang di-mention diambil dari hashtag itu) |
| Mentions User Followers | quantity, username (akun yang di-mention diambil dari followers pengguna itu) |
| Mentions Media Likers | quantity, media (URL) |
| Comment Likes | quantity, username |
| Comment Replies | username, comments |
| Poll | quantity, answer_number |
| Subscriptions | username, min, max, posts (ops.), delay, expiry (ops.), old_posts (ops.) |
| Invites from Groups | quantity, groups (dipisahkan baris baru) |
| Package | hanya link; quantity sudah tetap |
| Web Traffic | quantity, country, device, type_of_traffic, google_keyword atau referring_url |
Sumber: Spesifikasi SMM Panel API v2, diverifikasi terhadap justanotherpanel.com/api, 2026-09-06.
Bagaimana sebaiknya membangun integrasi dengan API ini?
- 1.Perlakukan setiap respons sebagai data tanpa tipe. Parse badannya dulu, cek apakah ada key error, lalu konversi string angka secara eksplisit.
- 2.Simpan ID layanan milik panel berdampingan dengan layanan baku Anda sendiri, dan sinkronkan ulang katalog secara terjadwal agar id yang dialihkan terdeteksi, bukan diasumsikan.
- 3.Kelompokkan pengecekan status dengan parameter jamak orders, per 100, bukan satu request per pesanan.
- 4.Tangani Partial sebagai hasil yang sah, bukan error. Partial datang dengan angka remains dan pengembalian otomatis ke saldo.
- 5.Jangan pernah mencatat badan request ke log. API key ada di dalamnya.
- 6.Ganti key secara terjadwal dan setiap kali ada perubahan integrasi pihak ketiga.
Apa yang diungkapkan API tentang sebuah panel?
Lebih banyak daripada teks pemasarannya. Membuka /api/v2 tanpa key mengembalikan respons error yang valid jika ada endpoint yang kompatibel dengan API v2, sedangkan 404 membantah klaim panel bahwa ia punya API. Ini pengecekan cepat dan objektif yang bisa dilakukan siapa saja.
API juga satu-satunya cara yang bisa diskalakan untuk mengumpulkan harga yang sebanding. Sebagian besar panel menyembunyikan katalog di balik pendaftaran dan hanya memublikasikan teks pemasaran, sehingga scraping halaman publik hanya mencakup sebagian kecil pasar. Mendaftar akun dan memanggil action services mengembalikan seluruh katalog sebagai JSON terstruktur dalam satu request, dan begitulah PanelCompare membangun indeks harganya.
Jawaban cepat
Apa itu API v2 panel SMM?
Satu endpoint POST, lazimnya di /api/v2, yang menerima parameter form-encoded dan mengembalikan JSON, dengan action services, add, status, refill, refill_status, cancel, dan balance. Hampir setiap panel menerapkannya, sehingga satu klien bisa dipakai di ratusan panel.
Bagaimana cara autentikasi ke API panel SMM?
Dengan parameter key di badan request. Tidak ada autentikasi lewat header, tidak ada penandatanganan request, dan tidak ada nonce, sehingga key itu adalah rahasia bearer berumur panjang dan sebaiknya diganti setiap kali ada perubahan integrasi pihak ketiga.
Mengapa API mengembalikan 200 saat terjadi error?
Karena spesifikasinya tidak memakai kode status HTTP secara bermakna. Kegagalan biasanya kembali sebagai HTTP 200 dengan objek error di badannya, dan sebagian panel memakai 401 dengan badan yang sama untuk key yang salah, sehingga setiap klien harus mem-parse badan respons untuk mendeteksi kegagalan.
Bagaimana cara mengecek status banyak pesanan sekaligus?
Pakai action status yang sama dengan parameter jamak orders yang berisi sampai 100 id pesanan yang dipisahkan koma. Spesifikasi bakunya tidak punya action multi_status tersendiri.
Setiap angka di sini bersumber dan bertanggal
Harga di pasar ini bergerak setiap minggu, jadi angka tanpa tanggal pengambilan hanyalah hiasan. Setiap kali panduan ini mengutip angka, sumber dan tanggal pemeriksaannya disebutkan. Jika salah satunya keliru, proses koreksi di halaman tentang kami menargetkan balasan dalam dua hari kerja, dan koreksi dipublikasikan dengan catatan bertanggal, bukan ditambal diam-diam.