API Reseller Panel Pterodactyl
Jual Panel Pterodactyl langsung dari website kamu menggunakan API Perkasa Hosting Indonesia. Gunakan API Key dari profil akun dan kelola transaksi reseller dengan sistem saldo yang aman.
Daftar Isi Dokumentasi
Introduction
API Reseller Perkasa Hosting Indonesia memungkinkan kamu menjual kembali Panel Pterodactyl lewat platform, bot, atau website sendiri. Setiap request yang berhasil akan langsung membuat panel secara otomatis di server kami dan memotong saldo akun kamu sesuai harga produk.
- REST API dengan response JSON, mudah diintegrasikan ke bahasa apa pun.
- Harga produk selalu diambil langsung dari server — bukan dari request kamu.
- Panel dibuat otomatis dalam hitungan detik setelah saldo mencukupi.
- Seluruh transaksi API tercatat rapi di riwayat transaksi akun.
https://perkasa-hosting.web.id/api/v1.Getting Started
Ikuti 4 langkah berikut untuk mulai berjualan Panel Pterodactyl lewat API dalam waktu singkat.
- Daftar atau login ke akun Perkasa Hosting Indonesia, lalu buka menu Profil → API Reseller.
- Klik Buat API Key — sistem otomatis membuat nama Project dan API Key sekaligus, tidak perlu diisi manual.
- Top up saldo akun minimal Rp50.000 lewat menu Topup Saldo.
- Kirim request pertama ke
https://perkasa-hosting.web.id/api/v1/productsdengan headerX-Project&Authorizationuntuk memastikan koneksi berhasil, lalu lanjut ke/panel/create.
Authentication
Setiap request wajib menyertakan nama Project pada header X-Project, dan API Key milik Project tersebut pada header Authorization memakai skema Bearer. Backend akan mencari Project berdasarkan X-Project terlebih dahulu, lalu memvalidasi API Key request terhadap credential Project itu. Request yang tidak menyertakan salah satu header ini akan ditolak dengan status 401/422, dan API Key yang tertukar antar Project akan ditolak dengan status 401.
X-Project: NAMA_PROJECT_ANDA
Authorization: Bearer PH_LIVE_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
- Gunakan HTTPS di setiap request — koneksi non-HTTPS akan ditolak.
- API Key hanya berlaku untuk Project yang sama — mengirim API Key milik Project lain pada header
X-Projectyang berbeda akan ditolak. - Jangan pernah menaruh API Key di kode frontend/client-side yang bisa dilihat publik.
- Simpan API Key di environment variable atau secret manager pada server kamu.
Project & API Key
API Key dikelola langsung dari halaman Profil, dikelompokkan per Project. Satu akun bisa membuat lebih dari satu Project — setiap Project punya nama unik dan API Key sendiri, tidak bisa saling dipakai bergantian.
VANIA → VANIA2) sampai benar-benar unik. Setiap API Key selalu terikat ke satu Project.Cara Mendapatkan API Key
- Login terlebih dahulu ke akun Perkasa Hosting Indonesia.
- Buka halaman Profil.
- Cari bagian API Reseller.
- Klik tombol Buat API Key — Project baru beserta API Key-nya langsung dibuat, tanpa perlu mengisi nama apa pun.
- Klik tombol Tampilkan pada Project tersebut untuk melihat API Key penuh.
- Klik tombol Copy API Key untuk menyalinnya.
- Gunakan nama Project pada header
X-Projectdan API Key pada headerAuthorizationuntuk melakukan request ke API.
Project : VANIA
API Key : PH_LIVE_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-Project: VANIA
Authorization: Bearer PH_LIVE_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Buat API Key
Satu klik langsung membuat Project baru + API Key, nama Project otomatis dan dijamin unik.
Copy
Salin API Key dengan satu klik langsung dari dashboard.
Regenerate
Ganti API Key lama dengan yang baru bila dicurigai bocor. Nama Project tetap sama.
Hapus
Hapus Project beserta API Key-nya kapan saja, permanen dan tidak bisa dipakai lagi.
Status
Pantau apakah Project sedang aktif atau nonaktif secara real-time.
Last Used & Created At
Riwayat kapan Project dibuat dan terakhir kali dipakai untuk request.
Products
Mengambil seluruh produk yang tersedia beserta harga resminya. Gunakan endpoint ini untuk menyinkronkan katalog produk di website kamu.
Response Fields
| Field | Tipe | Keterangan |
|---|---|---|
| product_id | string | Kode unik produk, dipakai saat create panel. |
| category | string | umum atau private. |
| name | string | Nama paket, mis. Starter, Standard, Unlimited. |
| ram | string | Alokasi RAM paket. |
| cpu | string | Alokasi CPU paket. |
| disk | string | Alokasi disk paket. |
| price | number | Harga resmi dalam Rupiah, diambil langsung dari server. |
| billing_period | string | Periode tagihan, mis. monthly. |
| status | string | active atau inactive. |
{
"status": "success",
"data": [
{
"product_id": "PU_STARTER",
"category": "umum",
"name": "Starter",
"ram": "1GB",
"cpu": "25%",
"disk": "Unlimited",
"price": 2500,
"billing_period": "monthly",
"status": "active"
}
]
}
Panel Umum
Daftar harga resmi kategori umum — cocok untuk kebutuhan hosting bot, website, dan aplikasi umum.
| Produk | product_id | RAM | CPU | Disk | Harga |
|---|---|---|---|---|---|
| Starter | PU_STARTER | 1GB | 25% | Unlimited | Rp2.500/bln |
| Basic | PU_BASIC | 2GB | 50% | Unlimited | Rp3.500/bln |
| Standard | PU_STANDARD | 4GB | 100% | Unlimited | Rp5.500/bln |
| Advanced | PU_ADVANCED | 6GB | 155% | Unlimited | Rp7.500/bln |
| Pro | PU_PRO | 7GB | 185% | Unlimited | Rp8.500/bln |
| Ultra | PU_ULTRA | 8GB | 200% | Unlimited | Rp9.500/bln |
| Unlimited Best Value | PU_UNLIMITED | Unlimited | Unlimited | Unlimited | Rp12.500/bln |
| Admin Panel | PU_ADMIN | Admin | Full Control | Unlimited | Rp35.500/bln |
Panel Private
Daftar harga resmi kategori private — akses lebih eksklusif dengan kontrol lebih luas per panel.
| Produk | product_id | RAM | CPU | Disk | Harga |
|---|---|---|---|---|---|
| Starter | PP_STARTER | 1GB | 25% | Unlimited | Rp4.500/bln |
| Basic | PP_BASIC | 2GB | 50% | Unlimited | Rp6.500/bln |
| Standard | PP_STANDARD | 4GB | 100% | Unlimited | Rp10.500/bln |
| Advanced | PP_ADVANCED | 6GB | 155% | Unlimited | Rp14.500/bln |
| Pro | PP_PRO | 7GB | 185% | Unlimited | Rp16.500/bln |
| Ultra | PP_ULTRA | 8GB | 200% | Unlimited | Rp18.500/bln |
| Unlimited Best Value | PP_UNLIMITED | Unlimited | Unlimited | Unlimited | Rp20.500/bln |
| Owner Panel | PP_OWNER | Full Owner | Unlimited | Owner Access | Rp65.500/bln |
Create Panel
Membuat panel Pterodactyl baru untuk pelanggan kamu. Saldo API otomatis terpotong sesuai harga produk begitu panel berhasil dibuat.
Request Body
{
"product_id": "PU_STARTER",
"panel_name": "ServerKu",
"whatsapp": "628xxxxxxxxxx",
"server_type": "whatsapp"
}
server_type bersifat opsional (nilai: whatsapp, nodejs, minecraft) — kalau tidak dikirim, server otomatis dipilih berdasarkan kategori produk. Username panel dibuat otomatis dari panel_name, bukan dikirim dari client.Alur Otomatis di Server
- Baca header
X-Project, cari Project di database, pastikan status Project & akun pemilik aktif. - Validasi API Key pada header
Authorizationterhadap credential Project. - Validasi saldo akun mencukupi minimum akses API (Rp50.000).
- Ambil harga
product_idlangsung dari database (bukan dari request). - Cek ketersediaan produk (aktif / tidak dihapus) dan status server Pterodactyl.
- Memotong saldo, mencatat order & transaksi, lalu membuat panel di server Pterodactyl — seluruhnya dalam satu transaksi database.
- Kalau pembuatan panel gagal, seluruh proses di atas otomatis dibatalkan (rollback) dan saldo tidak terpotong.
- Mengembalikan informasi panel yang baru dibuat.
Response
{
"status": "success",
"message": "Panel berhasil dibuat",
"data": {
"order_id": "PH-20260810-8841",
"product_id": "PU_STARTER",
"panel_name": "ServerKu",
"panel_url": "https://panel.perkasa-hosting.web.id",
"username": "serverku_a1b2",
"price_charged": 2500,
"balance_remaining": 47500,
"status": "active",
"created_at": "2026-08-10T09:41:00+07:00"
}
}
Order Status
Mengecek status order dan panel setelah dibuat lewat /panel/create. Berguna untuk menampilkan status real-time ke pelanggan kamu tanpa perlu hit endpoint create lagi.
{
"status": "success",
"data": {
"order_id": "PH-20260810-8841",
"product_id": "PU_STARTER",
"status": "active",
"panel_url": "https://panel.perkasa-hosting.web.id",
"created_at": "2026-08-10T09:41:00+07:00"
}
}
Balance
Saldo API adalah saldo utama akun kamu — dipakai untuk seluruh transaksi pembuatan panel lewat API. Berikut aturan yang wajib dipahami sebelum berjualan.
- Akses transaksi API baru bisa dipakai jika saldo minimal Rp50.000.
- Jika saldo di bawah Rp50.000, akun tidak bisa membuat transaksi panel baru sampai top up kembali.
- Setiap transaksi yang berhasil otomatis memotong saldo sesuai harga produk saat itu juga.
- Selama saldo masih memenuhi syarat minimum akses, transaksi tetap bisa berjalan walau saldo lebih besar dari Rp50.000 sedikit saja — asal cukup untuk harga produk yang dibeli.
Mengambil sisa saldo API akun kamu saat ini.
{
"status": "success",
"data": {
"balance": 47500,
"min_required": 50000,
"api_access": true
}
}
Contoh Perhitungan Saldo
402 sampai kamu top up kembali.Transactions
Mengambil riwayat seluruh transaksi API akun kamu, terurut dari yang terbaru. Semua transaksi lewat API — berhasil maupun gagal — otomatis tercatat di sini.
{
"status": "success",
"data": [
{
"order_id": "PH-20260810-8841",
"product_id": "PU_STARTER",
"amount": 2500,
"type": "panel_create",
"status": "success",
"created_at": "2026-08-10T09:41:00+07:00"
}
]
}
Error Codes
Setiap error mengembalikan HTTP status code beserta pesan yang jelas di body response, supaya mudah ditangani di sisi kamu.
| Kode | Nama | Keterangan |
|---|---|---|
| 401 | Invalid API Key | API Key tidak ditemukan, salah format, atau tidak cocok dengan Project pada header X-Project. |
| 403 | Project/Account Inactive | Project sedang tidak aktif, atau akun pemilik Project sedang tidak aktif. |
| 404 | Project Not Found | Nama Project pada header X-Project tidak ditemukan. |
| 402 | Insufficient Balance | Saldo akun tidak mencukupi untuk menyelesaikan transaksi yang diminta. |
| 404 | Product Not Found | product_id yang dikirim tidak ditemukan atau produk sudah tidak aktif. |
| 422 | Invalid Parameters | Header X-Project kosong, atau satu/lebih parameter pada request tidak valid/tidak lengkap. |
| 429 | Too Many Requests | Rate limit terlampaui, tunggu beberapa saat sebelum mencoba lagi. |
| 500 | Internal Server Error | Terjadi kesalahan pada server. Coba lagi, atau hubungi Admin bila berulang. |
Example Integration
Contoh kode membuat panel lewat endpoint /panel/create pada beberapa bahasa yang umum dipakai.
<?php
$projectName = 'VANIA';
$apiKey = 'PH_LIVE_xxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$endpoint = 'https://perkasa-hosting.web.id/api/v1/panel/create';
$payload = [
'product_id' => 'PU_STARTER',
'panel_name' => 'ServerKu',
'whatsapp' => '628xxxxxxxxxx',
];
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-Project: ' . $projectName,
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo $result['status'] === 'success'
? 'Panel dibuat: ' . $result['data']['panel_url']
: 'Gagal: ' . $result['message'];
const projectName = 'VANIA';
const apiKey = 'PH_LIVE_xxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const endpoint = 'https://perkasa-hosting.web.id/api/v1/panel/create';
async function createPanel() {
const res = await fetch(endpoint, {
method: 'POST',
headers: {
'X-Project': projectName,
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
product_id: 'PU_STARTER',
panel_name: 'ServerKu',
whatsapp: '628xxxxxxxxxx',
}),
});
const result = await res.json();
if (result.status === 'success') {
console.log('Panel dibuat:', result.data.panel_url);
} else {
console.error('Gagal:', result.message);
}
}
createPanel();
curl -X POST "https://perkasa-hosting.web.id/api/v1/panel/create" \
-H "X-Project: VANIA" \
-H "Authorization: Bearer PH_LIVE_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"product_id": "PU_STARTER",
"panel_name": "ServerKu",
"whatsapp": "628xxxxxxxxxx"
}'
Rate Limit
Rate limit berlaku per Project untuk menjaga stabilitas layanan bagi seluruh reseller. Batas default dapat diatur ulang oleh admin sesuai kebutuhan akun tertentu.
Retry-After berisi jumlah detik sebelum kamu bisa mencoba lagi.Changelog
FAQ API Reseller
Pertanyaan yang paling sering ditanyakan reseller sebelum mulai integrasi API Panel Pterodactyl.
Apa itu API Reseller Perkasa Hosting Indonesia?
API Reseller adalah REST API yang memungkinkan kamu menjual kembali Panel Pterodactyl lewat website, bot, atau aplikasi sendiri. Setiap request yang berhasil akan otomatis membuat panel di server dan memotong saldo akun sesuai harga produk.
Bagaimana cara mendapatkan API Key?
Login ke akun Perkasa Hosting Indonesia, buka halaman Profil, lalu cari bagian API Reseller dan klik "Buat API Key". Nama Project dan API Key dibuat otomatis sekaligus, dan API Key bisa ditampilkan ulang kapan saja lewat tombol Tampilkan.
Apakah 1 akun bisa punya lebih dari 1 API Key?
Bisa. Setiap kali kamu klik "Buat API Key" di halaman Profil, sistem membuat Project baru dengan nama otomatis yang unik (mis. VANIA, VANIA2, VANIA3) beserta API Key masing-masing. API Key satu Project tidak bisa dipakai untuk Project lain.
Berapa saldo minimal untuk menggunakan API?
Saldo minimal yang disarankan untuk mulai bertransaksi lewat API adalah Rp50.000. Saldo bisa ditambah kapan saja lewat menu Topup Saldo.
Apakah API Reseller berbayar?
Tidak ada biaya langganan untuk mengakses API. Kamu hanya membayar sesuai harga produk Panel Umum atau Panel Private yang dibuat lewat API, dipotong otomatis dari saldo akun.
Apakah ada rate limit pada API?
Ya, default rate limit adalah 60 request per menit dan 1.000 request per hari untuk setiap Project, guna menjaga stabilitas layanan bagi seluruh reseller.
Bahasa pemrograman apa saja yang didukung?
API Reseller berbasis REST dengan response JSON sehingga bisa diintegrasikan dari bahasa pemrograman apa pun, termasuk PHP, JavaScript/Node.js, dan cURL.
Masih ada pertanyaan lain? Lihat FAQ Perkasa Hosting Indonesia atau hubungi Admin lewat WhatsApp.
Siap mulai jualan lewat API?
Generate API Key kamu dan mulai integrasi hari ini juga.
Generate API Key Tanya Admin