API
Dokumentasi API
Pesan layanan, cek status, minta refill, batalkan pesanan, dan cek saldo dari panel atau skrip Anda sendiri. Formatnya sama dengan API panel SMM v2 pada umumnya, jadi panel lain bisa memakai neopanel sebagai penyedia.
- Alamat
https://neopanel.id/api/v2- Metode
- POST, body
application/x-www-form-urlencodedatau JSON - Mata uang
- Rupiah (IDR); harga per 1.000
Mulai
- Daftar lalu buat API key di halaman Profil & API. Key hanya tampil sekali saat dibuat; simpan di tempat aman.
- Isi saldo. Setiap pesanan lewat API dipotong dari saldo akun yang sama dengan panel web.
- Kirim permintaan pertama, misalnya cek saldo:
curl -X POST https://neopanel.id/api/v2 \
-d key=API_KEY_ANDA \
-d action=balance
Format permintaan
Semua permintaan dikirim ke satu alamat dengan dua parameter wajib. Parameter lain tergantung action.
| Parameter | Isi |
|---|---|
key | API key Anda, diawali neo_ |
action | Salah satu: services, add, status, refill, refill_status, cancel, balance |
ID pesanan dan ID refill sama dengan yang tampil di riwayat pesanan dan halaman isi ulang. ID layanan sama dengan yang tampil di katalog layanan.
Galat dan batas
Permintaan yang gagal dijawab dengan satu field error berisi penjelasan. Seperti panel SMM v2 lain, status HTTP-nya tetap 200, kecuali:
| HTTP | Arti |
|---|---|
| 401 | API key kosong, salah, atau sudah dicabut |
| 405 | Bukan metode POST |
| 429 | Lebih dari 120 permintaan per menit untuk satu key. Tunggu sesuai header Retry-After. |
{"error": "Saldo tidak cukup: biaya pesanan Rp 15.000, saldo Anda Rp 2.000. Isi saldo dulu."}
services
Daftar layanan dengan harga jual per 1.000 dalam Rupiah. Tidak butuh parameter lain.
curl -X POST https://neopanel.id/api/v2 -d key=API_KEY_ANDA -d action=services
[
{
"service": 1,
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram Followers",
"rate": "14850.00",
"min": "50",
"max": "10000",
"refill": true,
"cancel": false
}
]
type menentukan parameter yang dibutuhkan add; lihat parameter per tipe.
add
Membuat pesanan. Biaya dihitung dari harga layanan dan langsung dipotong dari saldo. Jika penyedia menolak pesanan, saldo tidak dipotong.
| Parameter | Isi |
|---|---|
service | ID layanan |
link | Tautan postingan atau profil, atau username |
quantity | Jumlah, di antara min dan max layanan |
| Parameter lain sesuai tipe layanan, lihat tabel di bawah. | |
curl -X POST https://neopanel.id/api/v2 \
-d key=API_KEY_ANDA \
-d action=add \
-d service=1 \
-d link=https://instagram.com/akun_anda \
-d quantity=1000
{"order": 23501}
Parameter per tipe
Parameter wajib untuk add menurut type dari action services. Daftar (komentar, username, hashtag) dipisah baris baru.
| Tipe | Wajib | Catatan |
|---|---|---|
| Default | link, quantity | runs, interval (drip-feed: quantity dikirim sebanyak runs kali, jeda interval menit) |
| Package | link | Harga paket dipotong satu kali |
| Custom Comments | link, comments | Satu komentar per baris; jumlah baris menjadi jumlah pesanan |
| Mentions with Hashtags | link, quantity, usernames, hashtags | Satu username atau hashtag per baris |
| Mentions Custom List | link, usernames | Satu username per baris; jumlah baris menjadi jumlah pesanan |
| Mentions User Followers | link, quantity, username | username berisi tautan profil sumber |
| Mentions Media Likers | link, quantity, media | media berisi tautan postingan sumber |
| Comment Likes | link, quantity, username | username pemilik komentar |
| Poll | link, quantity, answer_number | Nomor pilihan jawaban, mulai dari 1 |
| Subscriptions | username, min, max, posts, delay | old_posts dan expiry (dd/mm/yyyy) opsional; delay dalam menit: 0, 5, 10, 15, 20, 30, 40, 50, 60, 90, 120, 150, 180, 210, 240, 270, 300, 360, 420, 480, 540, 600 |
Subscriptions dipotong di awal untuk max × posts.
status
Status satu pesanan dengan order, atau sampai 100 pesanan sekaligus dengan orders (ID dipisah koma). Status diperbarui dari penyedia setiap beberapa menit.
curl -X POST https://neopanel.id/api/v2 -d key=API_KEY_ANDA -d action=status -d order=23501
{
"charge": "14850.00",
"start_count": "3572",
"status": "In progress",
"remains": "157",
"currency": "IDR"
}
curl -X POST https://neopanel.id/api/v2 -d key=API_KEY_ANDA -d action=status -d orders=23501,23502
{
"23501": {"charge": "14850.00", "start_count": "3572", "status": "Partial", "remains": "157", "currency": "IDR"},
"23502": {"error": "ID pesanan tidak ditemukan."}
}
Nilai status: Pending, In progress, Processing, Completed, Partial, Canceled. Pesanan Canceled dikembalikan penuh ke saldo; pesanan Partial dikembalikan sebanding dengan remains.
refill
Meminta refill untuk layanan yang mendukungnya ("refill": true). Satu pesanan dengan order, atau beberapa dengan orders.
curl -X POST https://neopanel.id/api/v2 -d key=API_KEY_ANDA -d action=refill -d order=23501
{"refill": 1}
[
{"order": 23501, "refill": 1},
{"order": 23502, "refill": {"error": "ID pesanan tidak ditemukan."}}
]
refill_status
Status satu refill dengan refill, atau beberapa dengan refills.
curl -X POST https://neopanel.id/api/v2 -d key=API_KEY_ANDA -d action=refill_status -d refill=1
{"status": "Completed"}
[
{"refill": 1, "status": "Completed"},
{"refill": 2, "status": {"error": "ID refill tidak ditemukan."}}
]
cancel
Meminta pembatalan untuk layanan yang mendukungnya ("cancel": true), dengan orders berisi ID dipisah koma. Saldo kembali setelah status pesanan berubah menjadi Canceled.
curl -X POST https://neopanel.id/api/v2 -d key=API_KEY_ANDA -d action=cancel -d orders=23501,23502
[
{"order": 23501, "cancel": 1},
{"order": 23502, "cancel": {"error": "ID pesanan tidak ditemukan."}}
]
balance
Saldo akun dalam Rupiah.
curl -X POST https://neopanel.id/api/v2 -d key=API_KEY_ANDA -d action=balance
{"balance": "125000.00", "currency": "IDR"}
Contoh PHP
Tanpa library tambahan. Simpan API key di variabel lingkungan, bukan di kode.
<?php
function neopanel(array $params): array
{
$ch = curl_init('https://neopanel.id/api/v2');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(['key' => getenv('NEOPANEL_API_KEY')] + $params),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$body = curl_exec($ch);
curl_close($ch);
$data = json_decode((string) $body, true);
if (!is_array($data) || isset($data['error'])) {
throw new RuntimeException($data['error'] ?? 'Respons tidak bisa dibaca');
}
return $data;
}
$order = neopanel(['action' => 'add', 'service' => 1, 'link' => 'https://instagram.com/akun_anda', 'quantity' => 1000]);
$status = neopanel(['action' => 'status', 'order' => $order['order']]);
Butuh bantuan? Buat tiket bantuan dari dasbor.