Η παραγγελία ενός server μέσω API είναι ένα αίτημα. Αυτό καλύπτεται στο Παραγγελία VPS με 4 κλήσεις API. Αυτή η σελίδα αφορά όλα όσα ακολουθούν: τις καθημερινές ενέργειες που αλλιώς θα κάνατε με κλικ στον πίνακα ελέγχου, γραμμένες ως εντολές curl για επικόλληση σε script.
Κάθε εντολή παρακάτω εκτελέστηκε στο API μας πριν τη δημοσίευση, και οι απαντήσεις είναι συντομευμένα αντίγραφα όσων επέστρεψαν.
Προετοιμασία
Δύο μεταβλητές κρατούν τις εντολές σύντομες:
export API=https://api.eqvps.com/api/v1/eqvps
export EQVPS_TOKEN='paste-your-token-here'
Το token προέρχεται από το POST /auth/register ή από το Settings → API tokens στον πίνακα ελέγχου. Κρατήστε το έξω από το ιστορικό του shell αν το μηχάνημα το χρησιμοποιούν κι άλλοι· αρκεί να το διαβάζετε από αρχείο με export EQVPS_TOKEN=$(cat ~/.eqvps_token).
Βρείτε τους servers σας
curl -s $API/services -H "Authorization: Bearer $EQVPS_TOKEN"
Κάθε εγγραφή έχει ένα id όπως 47HZ7YF. Αυτός είναι ο κωδικός υπηρεσίας που δέχεται κάθε άλλη κλήση. Έπειτα η πλήρης εικόνα ενός 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 σας λέει πώς να συνδεθείτε. Σε πακέτο με δική του IPv4 η θύρα είναι 22· σε πακέτο NAT είναι η προσωπική σας προωθημένη θύρα. Η κλήση μόνο διαβάζει, οπότε είναι ασφαλές να τη ρωτάτε σε βρόχο.
Αν παραγγείλατε χωρίς κλειδί SSH, ο κωδικός root εμφανίζεται μία φορά:
curl -s "$API/services/47HZ7YF?reveal=1" -H "Authorization: Bearer $EQVPS_TOKEN"
Όσο ο server ακόμη ξεκινά, η απάντηση λέει password_pending και η μοναδική εμφάνιση δεν καταναλώνεται. Περιμένετε μισό λεπτό και ρωτήστε ξανά.
Τροφοδοσία: 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 είναι start, stop ή reboot. Ένας server που δεν είναι ακόμη ενεργός (δημιουργείται ακόμη ή έχει ανασταλεί για μη πληρωμή) απαντά 409 Service is not active. Δεν είναι σφάλμα του script σας. Ελέγξτε πρώτα το status.
Μετρήσεις
curl -s "$API/services/47HZ7YF/metrics?timeframe=day" -H "Authorization: Bearer $EQVPS_TOKEN"
CPU, μνήμη, δίκτυο και δίσκος ως χρονοσειρά. Το timeframe είναι hour (προεπιλογή), day, week ή month. Χρήσιμο για ένα cron job που σας ειδοποιεί όταν ο δίσκος συνεχώς μεγαλώνει. Οι μετρητές κίνησης για την τρέχουσα περίοδο χρέωσης βρίσκονται στο Έλεγχος ταχύτητας και κίνησης.
Μετονομασία του server
curl -s -X POST $API/services/47HZ7YF/hostname \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"hostname": "web-01"}'
Το νέο όνομα εφαρμόζεται μέσα στο σύστημα που τρέχει από τον guest agent, χωρίς επανεκκίνηση σε Linux. Αν ο server είναι σταματημένος ή αφαιρέσατε το qemu-guest-agent, η κλήση επιστρέφει 409 agent_unavailable και τίποτα δεν αλλάζει.
Επανεγκατάσταση του OS
Αυτή σβήνει τον δίσκο. Το API σας υποχρεώνει να γράψετε το τρέχον hostname του server στο confirm, ώστε ένα script με λάθος id υπηρεσίας να μην μπορεί να σβήσει λάθος μηχάνημα:
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 προέρχεται από τη λίστα available_os του πακέτου σας στο GET /products ή από τα στοιχεία του ίδιου του server. Η επανεγκατάσταση τρέχει στο παρασκήνιο· ρωτάτε το GET /services/{id} μέχρι το status να γίνει ξανά active.
Ανανέωση και υπόλοιπο
Οι servers ανανεώνονται κάθε μήνα από το προπληρωμένο υπόλοιπο. Για να δείτε πόσο κοστίζουν μεγαλύτερες περίοδοι για αυτόν τον server:
curl -s $API/services/47HZ7YF/renew-options -H "Authorization: Bearer $EQVPS_TOKEN"
Για να πληρώσετε μπροστά, ας πούμε τρεις μήνες, με μία κλήση:
curl -s -X POST $API/services/47HZ7YF/renew \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"months": 3}'
Το months είναι 1, 3, 6 ή 12, και το 12 χρεώνεται στην ετήσια τιμή με την έκπτωσή της. Η απάντηση λέει paid_from_balance: true και δίνει τη νέα ημερομηνία λήξης. Αν το υπόλοιπο δεν καλύπτει το ποσό, δεν χρεώνεται τίποτα: παίρνετε paid_from_balance: false και αντί γι' αυτό ένα checkout_url για εκείνο το τιμολόγιο. Μόλις φορτιστεί το υπόλοιπο, το POST $API/invoices/{invoice_id}/pay πληρώνει το τιμολόγιο από το υπόλοιπο· αν και πάλι δεν φτάνει, επιστρέφει το ίδιο είδος checkout_url και δεν χρεώνει τίποτα. Έλεγχος και φόρτιση υπολοίπου:
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}'
Η απάντηση της φόρτισης περιέχει ένα checkout_url. Είναι πληρωμή σε κρυπτό: USDT, USDC ή ETH σε Base, Ethereum ή Polygon. Το υπόλοιπο πιστώνεται μόλις η πληρωμή επιβεβαιωθεί on-chain. Η πληρωμή είναι το μόνο βήμα που ένα script δεν μπορεί να κάνει για εσάς, εκτός αν έχει πορτοφόλι.
Λειτουργεί και το Monero, αλλά μόνο ως φόρτιση υπολοίπου με χειροκίνητο έλεγχο: στέλνετε XMR, δίνετε το id της συναλλαγής και πιστώνουμε μετά τον έλεγχο. Δείτε Πληρωμή με Monero.
Ακύρωση, και αλλαγή γνώμης
Η ασφαλής ακύρωση αφήνει τον server να τρέχει μέχρι το τέλος της πληρωμένης περιόδου και απλώς δεν τον ανανεώνει:
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 είναι υποχρεωτικό. Λίγες λέξεις αρκούν. Αλλάξατε γνώμη πριν την ημερομηνία;
curl -s -X POST $API/services/47HZ7YF/cancel/undo -H "Authorization: Bearer $EQVPS_TOKEN"
Υπάρχει και το "type": "immediate". Σβήνει τον server και τα δεδομένα του αμέσως, χρειάζεται "confirm": "<hostname>" και δεν αναιρείται. Εκτός αν το εννοείτε πραγματικά, χρησιμοποιήστε end_of_period.
Κρατήστε το token ζωντανό
Τα νέα tokens ζουν ένα χρόνο από προεπιλογή. Κάθε πιστοποιημένη απάντηση φέρει την κεφαλίδα X-Token-Expires-At, ώστε ένα script να το προσέξει νωρίς. Ανταλλάξτε το token με ένα νέο:
curl -s -X POST $API/auth/token/refresh -H "Authorization: Bearer $EQVPS_TOKEN"
Το παλιό token σταματά να λειτουργεί αμέσως, οπότε αποθηκεύστε το νέο πριν κάνετε οτιδήποτε άλλο.
Σφάλματα που αξίζει να χειριστείτε
| Κωδικός | Τι σημαίνει | Τι να κάνετε |
|---|---|---|
| 401 | Το token λείπει, ανακλήθηκε ή έληξε | Ανανεώστε ή δημιουργήστε νέο |
| 402 | Χαμηλό υπόλοιπο για ενέργεια που παίρνει μόνο από το υπόλοιπο (π.χ. αλλαγή πακέτου) | Φορτίστε και επαναλάβετε την ίδια κλήση |
| 409 | Ο server δεν είναι στη σωστή κατάσταση (όχι ακόμη ενεργός, εκτελείται λειτουργία, τίποτα για αναίρεση) | Διαβάστε το message, ελέγξτε το status, δοκιμάστε αργότερα |
| 422 | Ένα πεδίο είναι λάθος ή λείπει | Η απάντηση λέει ποιο |
| 429 | Πάρα πολλά αιτήματα | Περιμένετε Retry-After |
Το κάνετε από πελάτη AI αντί για script; Οι ίδιες ενέργειες υπάρχουν ως εργαλεία MCP — δείτε Πώς ένας πράκτορας AI διαχειρίζεται μόνος τον VPS του μέσω MCP και την τεκμηρίωση του API. Δεν έχετε ακόμη server; Επιλέξτε πακέτο.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.