Membuat, memeriksa, daya, mengubah ukuran dan menghapus server VPS Anda. Server diidentifikasi oleh uuid mereka.
Mengembalikan server ke akun Anda, pertama, 25 per halaman. Server yang sedang dihapus tidak termasuk.
Perlu izin: servers:list
| Parameter | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
page |
integer | Tidak | Halaman nomor, mulai dari 1 |
page_size |
integer | Tidak | Hasil per halaman (baku 25, maksimal 100) |
curl -X GET "https://admin.vps.org/api/v1/servers/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.get(url, headers=headers)
for server in response.json()["results"]:
print(server["uuid"], server["hostname"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});
const data = await response.json();
console.log(data.results);
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
foreach ($data['results'] as $server) {
echo $server['hostname'] . ' ' . $server['status'] . "\n";
}
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
"hostname": "web-01",
"status": "on",
"error_description": null,
"location_name": "New Jersey",
"plan_name": "1 vCPU / 2 GB RAM / 10 GB",
"os_name": "Ubuntu",
"ipv4_addresses": ["203.0.113.10"],
"ipv6_addresses": ["2001:db8:2:dd::f9:6b"],
"created_at": "2026-07-30T03:54:14.914364Z",
"deployed": true
},
{
"uuid": "2d7e9b40-6c1a-4f3e-8b5d-9a0c1e2f3b4d",
"hostname": "db-01",
"status": "queue",
"error_description": null,
"location_name": "New Jersey",
"os_name": "Debian",
"ipv4_addresses": [],
"ipv6_addresses": [],
"created_at": "2026-09-14T19:33:49.426508Z",
"deployed": false
}
]
}
| Ruas | Jenis | Deskripsi |
|---|---|---|
uuid |
string | Identifier server digunakan di setiap titik akhir server lain |
hostname |
string | Nama host yang Anda pilih ketika membuat server |
status |
string | Status Nilai Server di bawah ini. |
error_description |
string | null | Rincian dari kegagalan terakhir ketika status adalah error, jika tidak kosong |
location_name |
string | Nama lokasi yang dijalankan server |
os_name |
string | Nama sistem operasi, tanpa versi |
plan_name |
string | Ringkasan rencana yang dapat dibaca, misalnya 1 vCPU / 2 GB RAM / 10 GB |
ipv4_addresses |
array | Alamat IPv4 sebagai string. Kosong sampai server diterjunkan, dan pada rencana tanpa IPv4. |
ipv6_addresses |
array | Alamat IPv6 sebagai string. Kosong sampai server dikerahkan. |
created_at |
datetime | Waktu Penciptaan (ISO 8601, UTC) |
deployed |
boolean | Benar setelah ketentuan selesai |
| 200 | Daftar server berhasil diambil. |
| 403 | Hilang atau token API tak valid, atau token kurang izin yang diperlukan |
Antrikan server baru untuk penyebaran dan kembalikan segera dengan antrian status. Memprovisions dilanjutkan di latar belakang: jajak pendapat titik akhir status sampai dijalankan benar. Ketika server siap, rincian loginnya diemail ke pemilik akun.
Akun Anda membutuhkan metode pembayaran yang disimpan. Tergantung sejarah rekening Anda, sebuah kepemilikan pra-warga sementara dari satu minggu dari harga rencana (setidaknya 1 USD) dapat ditempatkan pada kartu Anda sebelum server dibuat.
Perlu izin: servers:create
| Parameter | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
hostname |
string | Ya | Setidaknya 3 karakter, huruf, digit, tanda hubung dan periode saja. |
location_id |
integer | Ya | Id dari lokasi aktif dari Lokasi API |
plan_uuid |
string | Ya | Uuid dari rencana aktif dari API Rencana |
operating_system_version_uuid |
string | Ya | Uuid dari entri aktif dalam daftar versi sistem operasi |
ssh_key_uuids |
array | Tidak | UUID dari kunci SSH dari API Kunci SSH untuk dipasang pada server |
ssh_key_ids |
array | Tidak | Id integer dari kunci SSH, sebagai alternatif untuk ssh_key_uuids. Jika keduanya dikirim, ssh_key_ids dipakai. |
ssh_key_uuid, ssh_key_id |
string, integer | Tidak | Shorthand untuk kunci SSH tunggal |
auth_method |
string | Tidak | sandi, ssh_key atau keduanya. Baku ke sandi, atau keduanya ketika kunci SSH diberikan. |
curl -X POST "https://admin.vps.org/api/v1/servers/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"hostname": "web-01",
"location_id": 1,
"plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"ssh_key_uuids": ["YOUR_SSH_KEY_UUID"]
}'
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {
"hostname": "web-01",
"location_id": 1,
"plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"ssh_key_uuids": ["YOUR_SSH_KEY_UUID"],
}
response = requests.post(url, headers=headers, json=data)
server = response.json()
print(response.status_code, server["uuid"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
hostname: 'web-01',
location_id: 1,
plan_uuid: '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
operating_system_version_uuid: 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
ssh_key_uuids: ['YOUR_SSH_KEY_UUID']
})
});
const server = await response.json();
console.log(server.uuid, server.status);
$data = [
'hostname' => 'web-01',
'location_id' => 1,
'plan_uuid' => '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
'operating_system_version_uuid' => 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
'ssh_key_uuids' => ['YOUR_SSH_KEY_UUID']
];
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server = json_decode(curl_exec($ch), true);
curl_close($ch);
201 Dibuat dengan objek server lengkap yang dijelaskan di bawah Dapatkan Rincian Server. Alamat dan vmid diisi dalam setelah penyebaran selesai.
{
"uuid": "5f0c8e2a-6b1d-4c3e-9a7f-2d4b6c8e0a1f",
"hostname": "web-01",
"vmid": null,
"status": "queue",
"error_description": null,
"location": {
"id": 1,
"name": "New Jersey",
"country_name": "United States",
"is_active": true
},
"plan": {
"uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"cpu": 1,
"ram": 2,
"ram_unit": "GB",
"disk_space": 10,
"disk_space_total": 10240,
"transfer": 500,
"price": "3.50",
"cpu_type_name": "Shared",
"is_active": true,
"hourly_price": "0.005",
"monthly_price": "3.50",
"is_gpu": false,
"gpu_count": 0,
"gpu_model": ""
},
"operating_system": {
"id": 1,
"name": "Ubuntu",
"svg_icon": "<svg ...>",
"versions": [ ... ]
},
"operating_system_version": {
"uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"name": "24.04 LTS x64",
"os_name": "Ubuntu",
"os_svg_icon": "<svg ...>",
"is_active": true
},
"ipv4_addresses": [],
"ipv6_addresses": [],
"deployed": false,
"created_at": "2026-09-14T21:02:11.402113Z",
"recent_actions": []
}
| 201 | Server dibuat dan antrian untuk penyebaran |
| 400 | Galat validasi, misalnya sebuah lokasi tidak aktif, rencana atau versi sistem operasi |
| 402 | Tidak ada metode pembayaran pada berkas, faktur tidak dibayar, atau kartu pra-wargatifisasi ditolak |
| 403 | Hilang atau token API tak valid, atau token kurang izin yang diperlukan |
| 429 | Akun Anda telah mencapai batas pembuatan servernya |
Mengembalikan satu server dengan lokasi, rencana, sistem operasi, alamat IP dan lima aksi terbaru.
Perlu izin: servers:list
curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
"hostname": "web-01",
"vmid": 1042,
"status": "on",
"error_description": null,
"location": {
"id": 1,
"name": "New Jersey",
"country_name": "United States",
"is_active": true
},
"plan": {
"uuid": "14186969-fbaf-43e1-9ab2-b1f1aeb66674",
"cpu": 1,
"ram": 2,
"ram_unit": "GB",
"disk_space": 25,
"disk_space_total": 25600,
"transfer": 1,
"price": "5.00",
"cpu_type_name": "Shared",
"is_active": true,
"hourly_price": "0.007",
"monthly_price": "5.00",
"is_gpu": false,
"gpu_count": 0,
"gpu_model": ""
},
"operating_system": {
"id": 1,
"name": "Ubuntu",
"svg_icon": "<svg ...>",
"versions": [ ... ]
},
"operating_system_version": {
"uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"name": "24.04 LTS x64",
"os_name": "Ubuntu",
"os_svg_icon": "<svg ...>",
"is_active": true
},
"ipv4_addresses": [
{
"ip": "203.0.113.10",
"gateway": "203.0.113.1",
"subnet": "203.0.113.0",
"rdns": "web-01.example.com"
}
],
"ipv6_addresses": [
{
"ip": "2001:db8:2:dd::f9:6b",
"gateway": "2001:db8:2:dd::f9:1",
"subnet": "2001:db8:2:dd::f9:0",
"rdns": "web-01.example.com"
}
],
"deployed": true,
"created_at": "2026-07-30T03:54:14.914364Z",
"recent_actions": [
{
"id": 17028,
"action": "create",
"action_display": "Create",
"description": "Server deployed with VMID 1042",
"user_email": "you@example.com",
"created_at": "2026-07-30T03:54:32.860854Z"
}
]
}
Markup ikon SVG dan daftar versi dipersingkat di sini.
| Ruas | Jenis | Deskripsi |
|---|---|---|
vmid |
integer | null | Nomor mesin virtual, diatur selama penyebaran |
location |
object | Objek lokasi, sebagaimana dikembalikan oleh API Lokasi |
plan |
object | Objek rencana, sebagaimana dikembalikan oleh API Rencana |
operating_system, operating_system_version |
object | Sistem operasi dan versi yang terpasang, sebagaimana dikembalikan oleh API Sistem Operasi |
ipv4_addresses, ipv6_addresses |
array | Satu objek per alamat dengan IP, gateway, subnet dan rdns (nama host mundur DNS) |
recent_actions |
array | Sampai lima aksi terakhir: id, action, action_display, deskripsi, user_email, created_at |
| 200 | Detail server berhasil diambil. |
| 404 | Tidak ditemukan, atau milik akun lain |
Panggilan ringan untuk polling setelah Anda membuat, daya atau mengubah ukuran server.
curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/status/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"status": "on",
"deployed": true,
"resizing": false
}
| Nilai | Deskripsi |
|---|---|
queue |
Suatu aksi (deploy, daya, resize, restore) diantri atau sedang berlangsung |
deploying |
Sedang diamanatkan. Server dibuat dari panel kontrol memakai keadaan ini; server dibuat melalui API tetap di antrian sampai mereka siap. |
on |
Berjalan |
off |
Mati |
error |
Aksi terakhir gagal. Lihat error_description. |
suspended_payment |
Diskors karena faktur yang belum dibayar |
Antrian aksi daya. Status server berubah untuk di antrian sampai aksi selesai.
Perlu izin: servers:power
| Parameter | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
action |
string | Ya |
start: power onshutdown: anggun shutdown, dipaksa off jika tamu tidak berhentirestart: siklus daya keras (berhenti, lalu mulai)stop: saat ini melakukan siklus daya yang sama dengan restart. Gunakan shutdown untuk meninggalkan server mati.
|
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/power/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "restart"}'
import requests
server_uuid = "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b"
url = f"https://admin.vps.org/api/v1/servers/{server_uuid}/power/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.post(url, headers=headers, json={"action": "restart"})
print(response.json())
{
"message": "Server restart queued"
}
| 200 | Aksi diantrikan |
| 400 | Hilang atau aksi tidak didukung |
| 402 | mulai ditolak karena akun telah tidak dibayar faktur |
| 404 | Tidak ditemukan, atau milik akun lain |
Memindahkan server ke rencana aktif lain. Rencana baru tidak dapat memiliki ruang disk lebih sedikit daripada yang sekarang, dan badan permintaan harus memasukkan aksi untuk ditata ulang. Kapasitas hypervisor untuk rencana baru diperiksa sebelum apapun diantresi, sehingga permintaan ditolak meninggalkan server tidak berubah.
Server dimatikan saat disize ulang dan dijalankan lagi sesudahnya. Bila resize gagal, server akan dimasukkan kembali ke dalam rencana sebelumnya dan dijalankan lagi jika dijalankan. Pertumbuhan disk tidak dapat dibatalkan.
Perlu izin: servers:resize
| Parameter | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
action |
string | Ya | Harus diubah ukuran |
new_plan_uuid |
string | Ya | Rencana uuid untuk pindah ke |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/resize/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "resize", "new_plan_uuid": "5e26a4a6-bd0c-467c-abca-da036c811c3f"}'
{
"message": "Resize queued successfully"
}
Contoh ukuran yang ditolak (409):
{
"error": "Not enough hypervisor capacity for the selected plan; the server was not changed"
}
| 200 | Aksi diantrikan |
| 400 | Action atau new_plan_uuid tidak ada, plan tidak valid atau tidak aktif, plan dengan ruang disk lebih kecil, atau plan GPU (plan GPU tidak dapat diubah ukurannya melalui API) |
| 404 | Tidak ditemukan, atau milik akun lain |
| 409 | Perubahan ukuran ulang atau penyimpanan sudah berlangsung, atau tidak cukup kapasitas hypervisor untuk rencana baru |
| 503 | Kapasitas tidak dapat diperiksa sekarang. Server tidak berubah; coba lagi nanti. |
Hasilkan sandi root baru, mengembalikannya dalam respon dan antrian perubahan pada server. Sandi baru juga diemail kepada Anda. Server mesti diterapkan. Tak perlu ada badan permintaan.
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/reset-password/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"message": "Password reset queued. New password will also be emailed to you.",
"password": "generated-password",
"job_id": "b6f1c7e2-3a4d-4f5e-8b9c-0d1e2f3a4b5c"
}
| 200 | Aksi diantrikan |
| 400 | Server belum diterjunkan |
| 404 | Tidak ditemukan, atau milik akun lain |
GET daftar nama host DNS terbalik dari setiap alamat IPv4 dan IPv6 di server. POST menetapkan satu alamat. Mengirim nama host kosong mereset alamat ke nama DNS yang bakunya terbalik.
Perlu izin: servers:update
| Parameter | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
ip |
string | Ya | Sebuah alamat IPv4 atau IPv6 yang ditugaskan ke server ini |
hostname |
string | Tidak | Nama host PTR. Tinggalkan kosong untuk me-reset ke bawaan. |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/rdns/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ip": "203.0.113.10", "hostname": "mail.example.com"}'
{
"message": "Reverse DNS for 203.0.113.10 set to mail.example.com",
"ip": "203.0.113.10",
"hostname": "mail.example.com"
}
GET respon:
{
"rdns": [
{"ip": "203.0.113.10", "hostname": "mail.example.com"},
{"ip": "2001:db8:2:dd::f9:6b", "hostname": "mail.example.com"}
]
}
| 400 | ip hilang, atau nama host tidak dapat ditata |
| 404 | Alamat IP tidak ditugaskan ke server ini |
Menjalankan perintah shell di dalam server melalui agen tamu QEMU dan menunggunya untuk menyelesaikannya. Server harus dikerahkan dan berjalan, dan qemu-guest-agent harus dipasang dan berjalan di tamu.
Perlu izin: servers:exec
| Parameter | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
command |
string | Ya | Baris perintah dijalankan dengan /bin/sh -c, hingga 2000 karakter |
timeout |
integer | Tidak | Detik untuk menunggu perintah, 1 sampai 300 (baku 30) |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/exec/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command": "uptime", "timeout": 30}'
{
"stdout": " 21:14:03 up 46 days, 2:10, 0 users, load average: 0.08, 0.03, 0.01\n",
"stderr": "",
"exit_code": 0,
"timed_out": false
}
Jika perintah masih berjalan ketika waktu habis, respon memiliki waktu habis diset ke true dan keluar_code diset ke null.
| 200 | Perintah selesai atau kehabisan waktu |
| 400 | Server tidak dispensiunkan atau tidak berjalan, atau parameter tidak valid |
| 409 | Agen tamu QEMU tidak berjalan di server |
| 503 | Masalah koneksi sementara. Coba lagi setelah isi ulang. |
Antrian server untuk penghapusan permanen. Server menghilang dari daftar segera dan tidak dapat dikembalikan.
Perlu izin: servers:delete
curl -X DELETE "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"message": "Server deletion queued"
}
| 202 | Diterima: permintaan diantre |
| 404 | Tidak ditemukan, atau milik akun lain |
Simpan kunci SSH publik di akun Anda, lalu kirimkan uuid-nya sebagai ssh_key_uuids saat Anda membuat server. GET menampilkan daftar kunci Anda (25 per halaman); POST menambahkan satu kunci.
Perlu izin: ssh-keys:list (GET), ssh-keys:create (POST)
| Parameter | Jenis | Diperlukan | Deskripsi |
|---|---|---|---|
name |
string | Ya | Nama untuk mengenali kunci dengan, hingga 100 karakter |
public_key |
string | Ya | Kunci publik dalam format OpenSSH, misalnya isi id_ed25519.pub |
curl -X POST "https://admin.vps.org/api/v1/ssh-keys/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop"}'
import requests
url = "https://admin.vps.org/api/v1/ssh-keys/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
with open("/home/you/.ssh/id_ed25519.pub") as f:
data = {"name": "laptop", "public_key": f.read().strip()}
response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json()["uuid"])
{
"id": 19,
"uuid": "6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c",
"name": "laptop",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop",
"fingerprint": "0b:4c:9b:48:76:e7:1d:07:b9:ac:71:90:70:f7:9a:69",
"created_at": "2026-08-23T19:16:11.547183Z",
"last_used_at": null
}
| Ruas | Jenis | Deskripsi |
|---|---|---|
id, uuid |
integer, string | Identifier kunci. Gunakan uuid dalam ssh_key_uuid dan dalam URL di bawah ini; id bekerja dalam ssh_key_ids. |
fingerprint |
string | Sidik jari MD5 dari kunci, dihitung oleh platform |
last_used_at |
datetime | null | Ketika kunci terakhir dipasang pada server baru |
| 201 | Kunci ditambahkan |
| 400 | Nama hilang, atau kunci publik bukan kunci publik SSH yang valid |
GET mengembalikan satu kunci dengan ruas di atas. ELETE menghapusnya dari akun Anda dan mengembalikan 204 tanpa tubuh. Menghapus kunci tidak menghapusnya dari server yang telah dipasang. Kunci tidak dapat disunting: hapus dan tambahkan lagi.
Perlu izin: ssh-keys:list (GET), ssh-keys:delete (DELETE)
curl -X DELETE "https://admin.vps.org/api/v1/ssh-keys/6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Membuat cadangan atau snapshot juga merupakan aksi server:
POST /api/v1/servers/{uuid}/backup/: API CadanganPOST /api/v1/servers/{uuid}/snapshot/: API Cuplikan