At bestille en server via API'et tager ét kald. Det står i Bestil en VPS i 4 API-kald. Denne side handler om alt det bagefter: de rutinehandlinger, du ellers ville klikke dig igennem i panelet, skrevet som curl-kommandoer, du kan sætte ind i et script.
Hver kommando herunder blev kørt mod vores API før udgivelsen, og svarene er forkortede kopier af det, der kom tilbage.
Forberedelse
To variabler holder kommandoerne korte:
export API=https://api.eqvps.com/api/v1/eqvps
export EQVPS_TOKEN='paste-your-token-here'
Token kommer fra POST /auth/register eller fra Settings → API tokens i panelet. Hold det ude af shellhistorikken, hvis andre bruger maskinen; at læse det fra en fil med export EQVPS_TOKEN=$(cat ~/.eqvps_token) er nok.
Find dine servere
curl -s $API/services -H "Authorization: Bearer $EQVPS_TOKEN"
Hver post har et id som 47HZ7YF. Det er servicekoden, som alle andre kald tager. Derefter det fulde billede af én 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 fortæller, hvordan du logger ind. På en plan med egen IPv4 er porten 22; på en NAT-plan er det din personlige videresendte port. Kaldet læser kun, så det er sikkert at spørge i en løkke.
Bestilte du uden SSH-nøgle, vises root-adgangskoden én gang:
curl -s "$API/services/47HZ7YF?reveal=1" -H "Authorization: Bearer $EQVPS_TOKEN"
Mens serveren stadig starter, siger svaret password_pending, og den engangsvisning bliver ikke brugt. Vent et halvt minut og spørg igen.
Strøm: 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 er start, stop eller reboot. En server, der ikke er aktiv endnu (oprettes stadig eller er suspenderet for manglende betaling), svarer 409 Service is not active. Det er ikke en fejl i dit script. Tjek status først.
Målinger
curl -s "$API/services/47HZ7YF/metrics?timeframe=day" -H "Authorization: Bearer $EQVPS_TOKEN"
CPU, hukommelse, netværk og disk som tidsserie. timeframe er hour (standard), day, week eller month. Godt til et cronjob, der giver besked, når disken bliver ved med at vokse. Trafiktællerne for den aktuelle faktureringsperiode står i Tjek hastighed og trafik.
Omdøb serveren
curl -s -X POST $API/services/47HZ7YF/hostname \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"hostname": "web-01"}'
Det nye navn sættes i det kørende system af gæsteagenten, uden genstart på Linux. Er serveren stoppet, eller har du fjernet qemu-guest-agent, returnerer kaldet 409 agent_unavailable, og intet ændres.
Geninstaller OS
Denne sletter disken. API'et kræver, at du skriver serverens nuværende værtsnavn i confirm, så et script med forkert service-id ikke kan slette den forkerte maskine:
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 kommer fra listen available_os for din plan i GET /products eller fra serverens egne detaljer. Geninstallationen kører i baggrunden; spørg GET /services/{id}, indtil status er active igen.
Fornyelse og saldo
Servere fornyes hver måned fra din forudbetalte saldo. For at se, hvad længere perioder koster for denne server:
curl -s $API/services/47HZ7YF/renew-options -H "Authorization: Bearer $EQVPS_TOKEN"
For at betale forud, f.eks. tre måneder, i ét kald:
curl -s -X POST $API/services/47HZ7YF/renew \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"months": 3}'
months er 1, 3, 6 eller 12, og 12 faktureres til årsprisen med dens rabat. Svaret siger paid_from_balance: true og giver den nye udløbsdato. Dækker saldoen ikke beløbet, trækkes der ingenting: du får paid_from_balance: false og i stedet en checkout_url til den faktura. Når saldoen er fyldt op, betaler POST $API/invoices/{invoice_id}/pay fakturaen fra saldoen; mangler der stadig, returnerer det samme slags checkout_url og trækker ingenting. Tjek og fyld saldoen op:
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}'
Svaret på opfyldningen indeholder en checkout_url. Det er en kryptobetaling: USDT, USDC eller ETH på Base, Ethereum eller Polygon. Saldoen krediteres, når betalingen er bekræftet on-chain. At betale er det ene trin, et script ikke kan gøre for dig, medmindre det har en wallet.
Monero virker også, men kun som saldoopfyldning med manuel kontrol: du sender XMR, indsender transaktions-id'et, og vi krediterer efter kontrol. Se Betal med Monero.
Opsig, og fortryd
Den sikre opsigelse lader serveren køre, til den betalte periode slutter, og fornyer den simpelthen ikke:
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 er påkrævet. Et par ord er nok. Fortrudt før datoen?
curl -s -X POST $API/services/47HZ7YF/cancel/undo -H "Authorization: Bearer $EQVPS_TOKEN"
"type": "immediate" findes også. Den sletter serveren og dens data med det samme, kræver "confirm": "<hostname>" og kan ikke fortrydes. Medmindre du virkelig mener det, så brug end_of_period.
Hold token i live
Nye tokens lever et år som standard. Hvert autentificeret svar har en header X-Token-Expires-At, så et script kan opdage det i tide. Byt token til et nyt:
curl -s -X POST $API/auth/token/refresh -H "Authorization: Bearer $EQVPS_TOKEN"
Det gamle token holder op med at virke med det samme, så gem det nye, før du gør noget andet.
Fejl, der er værd at håndtere
| Kode | Hvad det betyder | Hvad du gør |
|---|---|---|
| 401 | Token mangler, er tilbagekaldt eller udløbet | Forny eller opret et nyt |
| 402 | For lav saldo til en handling, der kun bruger saldo (f.eks. planskift) | Fyld op, og gentag samme kald |
| 409 | Serveren er i den forkerte tilstand (ikke aktiv endnu, handling i gang, intet at fortryde) | Læs message, tjek status, prøv igen senere |
| 422 | Et felt er forkert eller mangler | Svaret siger hvilket |
| 429 | For mange kald | Vent Retry-After |
Gør du det fra en AI-klient i stedet for et script? De samme handlinger findes som MCP-værktøjer — se Sådan driver en AI-agent sin egen VPS via MCP og API-referencen. Har du ingen server endnu? Vælg en plan.
Kommentarer
Ingen kommentarer endnu. Vær den første.