Memesan server lewat API cukup satu permintaan. Itu dibahas di Pesan VPS dalam 4 panggilan API. Halaman ini membahas semua setelahnya: aksi rutin yang biasanya Anda klik di dasbor, ditulis sebagai perintah curl yang bisa ditempel ke skrip.
Setiap perintah di bawah dijalankan ke API kami sebelum diterbitkan, dan responsnya adalah salinan ringkas dari yang kembali.
Persiapan
Dua variabel membuat perintah tetap pendek:
export API=https://api.eqvps.com/api/v1/eqvps
export EQVPS_TOKEN='paste-your-token-here'
Token berasal dari POST /auth/register atau dari Settings → API tokens di dasbor. Jauhkan dari riwayat shell jika orang lain memakai mesin itu; membacanya dari file dengan export EQVPS_TOKEN=$(cat ~/.eqvps_token) sudah cukup.
Temukan server Anda
curl -s $API/services -H "Authorization: Bearer $EQVPS_TOKEN"
Setiap entri punya id seperti 47HZ7YF. Itulah kode layanan yang dipakai semua panggilan lain. Lalu gambaran lengkap satu server:
curl -s $API/services/47HZ7YF -H "Authorization: Bearer $EQVPS_TOKEN"
{ "data": {
"id": "47HZ7YF", "status": "active", "queued": false,
"product": { "slug": "nano", "name": "Nano" },
"specs": { "vcpu": 2, "memory_mb": 1024, "disk_gb": 15 },
"hostname": "agent-box",
"vm": { "state": "running", "uptime": 5340 },
"access": { "method": "ssh", "host": "203.0.113.10", "port": 21521, "user": "root", "nat": true, ... } } }
access memberi tahu cara masuk. Pada paket dengan IPv4 sendiri, port-nya 22; pada paket NAT, itu port terusan pribadi Anda. Panggilan ini hanya membaca, jadi aman di-poll dalam loop.
Jika Anda memesan tanpa kunci SSH, kata sandi root ditampilkan sekali:
curl -s "$API/services/47HZ7YF?reveal=1" -H "Authorization: Bearer $EQVPS_TOKEN"
Selama server masih booting, jawabannya password_pending dan tampilan sekali pakai itu tidak terpakai. Tunggu setengah menit dan tanya lagi.
Daya: start, stop, reboot
curl -s -X POST $API/services/47HZ7YF/power \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"action": "reboot"}'
action bernilai start, stop, atau reboot. Server yang belum aktif (masih dibuat, atau ditangguhkan karena belum bayar) menjawab 409 Service is not active. Itu bukan galat di skrip Anda. Cek status dulu.
Metrik
curl -s "$API/services/47HZ7YF/metrics?timeframe=day" -H "Authorization: Bearer $EQVPS_TOKEN"
CPU, memori, jaringan, dan disk sebagai deret waktu. timeframe bernilai hour (bawaan), day, week, atau month. Cocok untuk cron job yang mengabari Anda saat disk terus membesar. Penghitung trafik untuk periode tagihan saat ini ada di Cek kecepatan dan trafik.
Ganti nama server
curl -s -X POST $API/services/47HZ7YF/hostname \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"hostname": "web-01"}'
Nama baru diterapkan di dalam sistem yang berjalan oleh guest agent, tanpa reboot di Linux. Jika server dihentikan, atau Anda menghapus qemu-guest-agent, panggilan mengembalikan 409 agent_unavailable dan tidak ada yang berubah.
Instal ulang OS
Yang ini menghapus disk. API mengharuskan Anda mengetik hostname server saat ini di confirm, sehingga skrip dengan id layanan yang salah tidak bisa menghapus mesin yang salah:
curl -s -X POST $API/services/47HZ7YF/reinstall \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"os_id": 4, "confirm": "web-01"}'
os_id berasal dari daftar available_os paket Anda di GET /products atau dari detail server itu sendiri. Instal ulang berjalan di latar belakang; poll GET /services/{id} sampai status kembali active.
Perpanjangan dan saldo
Server diperpanjang setiap bulan dari saldo prabayar Anda. Untuk melihat biaya periode yang lebih panjang bagi server ini:
curl -s $API/services/47HZ7YF/renew-options -H "Authorization: Bearer $EQVPS_TOKEN"
Untuk membayar di muka, misalnya tiga bulan, dalam satu panggilan:
curl -s -X POST $API/services/47HZ7YF/renew \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"months": 3}'
months bernilai 1, 3, 6, atau 12, dan 12 ditagih dengan harga tahunan beserta diskonnya. Jawabannya menyebut paid_from_balance: true dan memberi tanggal kedaluwarsa baru. Jika saldo tidak mencukupi, tidak ada yang ditagih: Anda mendapat paid_from_balance: false dan sebuah checkout_url untuk tagihan itu. Setelah saldo diisi, POST $API/invoices/{invoice_id}/pay membayar tagihan itu dari saldo; jika masih kurang, ia mengembalikan checkout_url yang sama dan tidak menagih apa pun. Cek dan isi saldo:
curl -s $API/balance -H "Authorization: Bearer $EQVPS_TOKEN"
curl -s -X POST $API/balance/topup \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"amount": 25}'
Respons pengisian berisi checkout_url. Itu pembayaran kripto: USDT, USDC, atau ETH di Base, Ethereum, atau Polygon. Saldo dikreditkan setelah pembayaran terkonfirmasi on-chain. Membayar adalah satu-satunya langkah yang tidak bisa dilakukan skrip untuk Anda, kecuali skrip itu memegang dompet.
Monero juga bisa, tetapi hanya sebagai pengisian saldo dengan pengecekan manual: Anda mengirim XMR, menyerahkan id transaksi, dan kami mengkreditkannya setelah verifikasi. Lihat Bayar dengan Monero.
Batalkan, dan berubah pikiran
Pembatalan yang aman membiarkan server tetap berjalan sampai periode berbayar berakhir dan hanya tidak memperpanjangnya:
curl -s -X POST $API/services/47HZ7YF/cancel \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"type": "end_of_period", "reason": "moving the project elsewhere"}'
reason wajib diisi. Beberapa kata sudah cukup. Berubah pikiran sebelum tanggalnya?
curl -s -X POST $API/services/47HZ7YF/cancel/undo -H "Authorization: Bearer $EQVPS_TOKEN"
Ada juga "type": "immediate". Ini menghapus server dan datanya seketika, memerlukan "confirm": "<hostname>", dan tidak bisa diurungkan. Kecuali Anda benar-benar bermaksud begitu, gunakan end_of_period.
Jaga token tetap hidup
Token baru berlaku setahun secara bawaan. Setiap respons terautentikasi membawa header X-Token-Expires-At, jadi skrip bisa menyadarinya lebih awal. Tukar token dengan yang baru:
curl -s -X POST $API/auth/token/refresh -H "Authorization: Bearer $EQVPS_TOKEN"
Token lama langsung berhenti bekerja, jadi simpan yang baru sebelum melakukan hal lain.
Galat yang perlu ditangani
| Kode | Artinya | Yang dilakukan |
|---|---|---|
| 401 | Token hilang, dicabut, atau kedaluwarsa | Refresh atau buat yang baru |
| 402 | Saldo terlalu rendah untuk aksi yang hanya memakai saldo (misalnya ganti paket) | Isi saldo, lalu ulangi panggilan yang sama |
| 409 | Server tidak dalam status yang tepat (belum aktif, operasi berjalan, tidak ada yang diurungkan) | Baca message, cek status, coba lagi nanti |
| 422 | Sebuah kolom salah atau kosong | Respons menyebut yang mana |
| 429 | Terlalu banyak permintaan | Tunggu Retry-After |
Melakukannya dari klien AI, bukan skrip? Aksi yang sama tersedia sebagai alat MCP — lihat Cara agen AI mengurus VPS-nya sendiri lewat MCP dan referensi API. Belum punya server? Pilih paket.
Komentar
Belum ada komentar. Jadilah yang pertama.