Dasar
| Hal | Nilai |
|---|---|
| Alamat dasar | https://vps.radiuslink.id/api/v1 |
| Autentikasi | Header Authorization: Bearer TOKEN |
| Format | JSON. Kirim Accept: application/json |
| Batas | 60 permintaan per menit per token. Sisa kuota ada di header X-RateLimit-* |
| Uang | Rupiah, bilangan bulat, tanpa desimal (price_idr, total_idr) |
| Waktu | ISO 8601 |
API hanya menampilkan milik akun pemilik token. Apa pun yang bukan milik Anda dijawab 404.
Membuat token
- Di panel, buka Pengaturan, lalu Token API.
- Tekan Buat token, beri nama, lalu pilih Akses:
- Hanya baca: melihat server, tagihan, dan metrik.
- Baca dan tulis: semua yang bisa dibaca, ditambah aksi daya dan perubahan lain.
- Salin tokennya. Token tampil satu kali; kami hanya menyimpan sidiknya.
Token hilang atau bocor? Cabut dari halaman yang sama, lalu buat yang baru. Perlakukan token seperti kata sandi, dan pakai Hanya baca untuk dasbor dan pemantauan.
Contoh pertama
curl https://vps.radiuslink.id/api/v1/servers \
-H "Authorization: Bearer TOKEN" \
-H "Accept: application/json"
Jawabannya:
{
"data": [
{
"id": 12,
"hostname": "toko-saya",
"status": "running",
"os": "ubuntu-24.04",
"plan": { "code": "core", "name": "Core", "vcpu": 2, "ram_mb": 4096, "disk_gb": 64 },
"locked": false,
"current_task": null,
"due_at": "2026-11-01T02:00:00+00:00"
}
]
}
status adalah salah satu dari provisioning, running, stopped, rebuilding, suspended, terminating, terminated, error.
Membaca (akses Hanya baca)
| Metode | Path | Hasil |
|---|---|---|
| GET | /servers |
Semua server Anda |
| GET | /servers/{id} |
Satu server dan tugas yang sedang berjalan padanya |
| GET | /servers/{id}/metrics?range=day |
Grafik pemakaian. range: hour, day, week, month, year |
| GET | /servers/{id}/snapshots |
Snapshot server itu |
| GET | /invoices |
Semua faktur Anda |
| GET | /invoices/{id} |
Satu faktur beserta barisnya |
| GET | /invoices/{id}/pdf |
Faktur sebagai PDF. Tambahkan ?receipt=1 untuk bukti bayar (setelah lunas) |
| GET | /tasks/{id} |
Keadaan satu tugas |
| GET | /ssh-keys |
Kunci SSH pada akun Anda |
/servers dan /invoices mengembalikan seluruh daftar. Tambahkan ?per_page=N (1 sampai 100) untuk hasil berhalaman dengan meta dan links.
Mengubah (akses Baca dan tulis)
| Metode | Path | Isi | Hasil |
|---|---|---|---|
| POST | /servers/{id}/actions |
{"action": "reboot"} |
202 dan tugas. action: start, shutdown, reboot, stop |
| POST | /servers/{id}/snapshots |
{"name": "sebelum-update"} |
202 dan tugas |
| POST | /servers/{id}/snapshots/{name}/rollback |
202 dan tugas |
|
| DELETE | /servers/{id}/snapshots/{name} |
202 dan tugas |
|
| POST | /servers/{id}/rebuild |
{"confirm": true, "ssh_key_id": 3} |
202 dan tugas. Menghapus seluruh isi disk |
| POST | /servers/{id}/rescue |
{"enable": true} |
200 dengan {"active": true} |
| POST | /servers/{id}/console |
201 dengan token konsol sekali pakai |
|
| POST | /ssh-keys |
{"name": "laptop", "public_key": "ssh-ed25519 AAAA..."} |
201 |
| DELETE | /ssh-keys/{id} |
204 |
|
| POST | /orders |
lihat di bawah | 201 dan pesanan |
stop memutus daya seketika; pakai shutdown untuk berhenti dengan baik.
Tugas: menunggu sampai selesai
Aksi yang butuh waktu menjawab 202 dengan sebuah tugas, bukan hasil akhirnya:
{ "data": { "id": 481, "state": "running", "error": null, "server_id": 12 } }
Tanyakan /tasks/{id} setiap beberapa detik sampai state menjadi done atau failed. Bila gagal, error berisi alasannya.
Selama satu tugas berjalan pada sebuah server, aksi lain pada server itu ditolak dengan 409.
Memesan server
curl -X POST https://vps.radiuslink.id/api/v1/orders \
-H "Authorization: Bearer TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"plan": "core", "hostname": "toko-saya", "os": "ubuntu-24.04", "term_months": 1, "ssh_key_id": 3, "idempotency_key": "pesanan-2026-10-12-a"}'
| Kolom | Wajib | Keterangan |
|---|---|---|
plan |
ya | Kode paket, misalnya edge, node, core |
hostname |
ya | Huruf kecil, angka, tanda hubung |
os |
tidak | Misalnya ubuntu-24.04, debian-12 |
app |
tidak | Aplikasi siap pakai, misalnya wordpress, docker, n8n |
site_name |
tidak | Nama pada alamat web. Hanya untuk aplikasi yang punya halaman web |
term_months |
tidak | 1, 3, 6, 12, atau 24 |
ssh_key_id |
tidak | Kunci dari /ssh-keys |
idempotency_key |
tidak | Hingga 64 karakter. Kirim nilai yang sama saat mengulang, agar tidak terbuat dua pesanan |
Pesanan tidak membangun apa pun sampai dibayar. Pembayaran dilakukan di panel; server dibuat setelahnya.
Galat
Semua galat dijawab dalam JSON.
| Kode | Artinya |
|---|---|
401 |
Token tidak ada, salah, atau sudah dicabut |
403 |
Token tidak punya akses yang diperlukan (misalnya Hanya baca dipakai untuk mengubah), atau aksi itu tidak diizinkan |
404 |
Tidak ada, atau bukan milik Anda |
409 |
Masih ada tugas lain yang berjalan pada server itu |
422 |
Isi permintaan tidak sah, atau server tidak dalam keadaan yang bisa menerima aksi itu |
429 |
Terlalu banyak permintaan. Tunggu sesuai header Retry-After |
Yang tidak ada di API
- Kata sandi root dan login aplikasi tidak pernah dikembalikan API. Keduanya hanya ditampilkan sekali di panel.
- Pembayaran, upgrade paket, alamat web, dan port dikelola dari panel.