Promo bulan ini! Top up saldo dan nikmati bonus hingga 5%. Berlaku sampai akhir bulan.
Home / API Docs / API Reseller Panel Pterodactyl
API Reseller

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
01 · Mulai

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.
Base URL: semua endpoint pada dokumentasi ini menggunakan awalan https://perkasa-hosting.web.id/api/v1.
02 · Mulai

Getting Started

Ikuti 4 langkah berikut untuk mulai berjualan Panel Pterodactyl lewat API dalam waktu singkat.

  1. Daftar atau login ke akun Perkasa Hosting Indonesia, lalu buka menu Profil → API Reseller.
  2. Klik Buat API Key — sistem otomatis membuat nama Project dan API Key sekaligus, tidak perlu diisi manual.
  3. Top up saldo akun minimal Rp50.000 lewat menu Topup Saldo.
  4. Kirim request pertama ke https://perkasa-hosting.web.id/api/v1/products dengan header X-Project & Authorization untuk memastikan koneksi berhasil, lalu lanjut ke /panel/create.
Sudah punya Project & API Key? Langsung lompat ke bagian Authentication atau Example Integration.
03 · Mulai

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.

HTTP Header
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-Project yang 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.
04 · Mulai

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.

Nama Project dibuat otomatis oleh sistem saat kamu klik "Buat API Key" dan dijamin unik — kalau nama otomatis sudah dipakai reseller lain, sistem otomatis menambahkan angka (mis. VANIA → VANIA2) sampai benar-benar unik. Setiap API Key selalu terikat ke satu Project.

Cara Mendapatkan API Key

  1. Login terlebih dahulu ke akun Perkasa Hosting Indonesia.
  2. Buka halaman Profil.
  3. Cari bagian API Reseller.
  4. Klik tombol Buat API Key — Project baru beserta API Key-nya langsung dibuat, tanpa perlu mengisi nama apa pun.
  5. Klik tombol Tampilkan pada Project tersebut untuk melihat API Key penuh.
  6. Klik tombol Copy API Key untuk menyalinnya.
  7. Gunakan nama Project pada header X-Project dan API Key pada header Authorization untuk melakukan request ke API.
Contoh Project & API Key
Project : VANIA
API Key : PH_LIVE_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pemakaian pada Request
X-Project: VANIA
Authorization: Bearer PH_LIVE_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Keamanan: jangan bagikan API Key kepada siapa pun. API Key memberikan akses ke saldo & Project sesuai izin akun kamu — jika bocor atau dicurigai disalahgunakan, segera lakukan Regenerate pada Project tersebut dari halaman Profil untuk membuat key baru dan menonaktifkan key lama.

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.

Project
VANIA
Aktif
API Key
PH_LIVE_••••••••••••7a2f
Dibuat
03 Agustus 2026, 14:20 WIB
Terakhir Dipakai
10 Agustus 2026, 09:41 WIB
Keamanan: API Key hanya ditampilkan penuh saat kamu klik Tampilkan di halaman Profil. Secara default, dashboard hanya menampilkan bentuk tersamar seperti contoh di atas.
05 · Produk & Harga

Products

GET /api/v1/products

Mengambil seluruh produk yang tersedia beserta harga resminya. Gunakan endpoint ini untuk menyinkronkan katalog produk di website kamu.

Response Fields

FieldTipeKeterangan
product_idstringKode unik produk, dipakai saat create panel.
categorystringumum atau private.
namestringNama paket, mis. Starter, Standard, Unlimited.
ramstringAlokasi RAM paket.
cpustringAlokasi CPU paket.
diskstringAlokasi disk paket.
pricenumberHarga resmi dalam Rupiah, diambil langsung dari server.
billing_periodstringPeriode tagihan, mis. monthly.
statusstringactive atau inactive.
Response · 200 OK
{
  "status": "success",
  "data": [
    {
      "product_id": "PU_STARTER",
      "category": "umum",
      "name": "Starter",
      "ram": "1GB",
      "cpu": "25%",
      "disk": "Unlimited",
      "price": 2500,
      "billing_period": "monthly",
      "status": "active"
    }
  ]
}
Penting: harga selalu diambil dari database server. API tidak pernah menerima harga dari request client, sehingga harga tidak bisa dimanipulasi dari sisi kamu.
06 · Produk & Harga

Panel Umum

Daftar harga resmi kategori umum — cocok untuk kebutuhan hosting bot, website, dan aplikasi umum.

Produkproduct_idRAMCPUDiskHarga
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
07 · Produk & Harga

Panel Private

Daftar harga resmi kategori private — akses lebih eksklusif dengan kontrol lebih luas per panel.

Produkproduct_idRAMCPUDiskHarga
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
08 · Endpoint API

Create Panel

POST /api/v1/panel/create

Membuat panel Pterodactyl baru untuk pelanggan kamu. Saldo API otomatis terpotong sesuai harga produk begitu panel berhasil dibuat.

Request Body

JSON 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

  1. Baca header X-Project, cari Project di database, pastikan status Project & akun pemilik aktif.
  2. Validasi API Key pada header Authorization terhadap credential Project.
  3. Validasi saldo akun mencukupi minimum akses API (Rp50.000).
  4. Ambil harga product_id langsung dari database (bukan dari request).
  5. Cek ketersediaan produk (aktif / tidak dihapus) dan status server Pterodactyl.
  6. Memotong saldo, mencatat order & transaksi, lalu membuat panel di server Pterodactyl — seluruhnya dalam satu transaksi database.
  7. Kalau pembuatan panel gagal, seluruh proses di atas otomatis dibatalkan (rollback) dan saldo tidak terpotong.
  8. Mengembalikan informasi panel yang baru dibuat.

Response

Response · 200 OK
{
  "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"
  }
}
09 · Endpoint API

Order Status

GET /api/v1/panel/status/{order_id}

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.

Response · 200 OK
{
  "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"
  }
}
10 · Endpoint API

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.
GET /api/v1/balance

Mengambil sisa saldo API akun kamu saat ini.

Response · 200 OK
{
  "status": "success",
  "data": {
    "balance": 47500,
    "min_required": 50000,
    "api_access": true
  }
}

Contoh Perhitungan Saldo

Saldo AwalRp50.000
Beli Panel Umum Starter−Rp2.500
Saldo Setelah TransaksiRp47.500
Contoh lain: jika saldo akun tersisa Rp49.000, transaksi tetap bisa dilakukan selama harga produk yang dibeli tidak melebihi saldo tersebut — tapi akses API sendiri tetap mengikuti syarat saldo minimum Rp50.000 yang berlaku saat itu. Begitu saldo turun di bawah minimum, transaksi panel baru akan ditolak dengan status 402 sampai kamu top up kembali.
11 · Endpoint API

Transactions

GET /api/v1/transactions

Mengambil riwayat seluruh transaksi API akun kamu, terurut dari yang terbaru. Semua transaksi lewat API — berhasil maupun gagal — otomatis tercatat di sini.

Response · 200 OK
{
  "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"
    }
  ]
}
12 · Referensi

Error Codes

Setiap error mengembalikan HTTP status code beserta pesan yang jelas di body response, supaya mudah ditangani di sisi kamu.

KodeNamaKeterangan
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.
13 · Referensi

Example Integration

Contoh kode membuat panel lewat endpoint /panel/create pada beberapa bahasa yang umum dipakai.

PHP
<?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'];
JavaScript / Node.js
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
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"
  }'
14 · Referensi

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.

60
Request / Menit
1.000
Request / Hari
429
Status Jika Terlampaui
Response yang terkena rate limit menyertakan header Retry-After berisi jumlah detik sebelum kamu bisa mencoba lagi.
15 · Referensi

Changelog

v1.0.0 10 Agustus 2026
Rilis publik API Reseller: endpoint Products & Panel Create, manajemen API Key, riwayat transaksi, dan dokumentasi ini.
v1.1.0 17 Agustus 2026
API Reseller dirombak ke sistem Project: 1 akun bisa punya banyak Project + API Key, autentikasi kini wajib menyertakan header X-Project, dan seluruh endpoint terhubung ke backend production (bukan simulasi).
v1.1.1 Segera
Penambahan endpoint webhook status order supaya sistem reseller tidak perlu polling manual.
16 · Referensi

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