Zamówienie serwera przez API to jedno zapytanie. Opisuje to Zamów VPS w 4 wywołaniach API. Ta strona dotyczy wszystkiego, co potem: rutynowych czynności, które inaczej wyklikałbyś w panelu, zapisanych jako polecenia curl do wklejenia w skrypt.
Każde polecenie poniżej uruchomiliśmy na naszym API przed publikacją, a odpowiedzi to skrócone kopie tego, co wróciło.
Przygotowanie
Dwie zmienne skracają polecenia:
export API=https://api.eqvps.com/api/v1/eqvps
export EQVPS_TOKEN='paste-your-token-here'
Token pochodzi z POST /auth/register albo z Settings → API tokens w panelu. Trzymaj go poza historią powłoki, jeśli z maszyny korzystają inni; wczytanie go z pliku przez export EQVPS_TOKEN=$(cat ~/.eqvps_token) wystarczy.
Znajdź swoje serwery
curl -s $API/services -H "Authorization: Bearer $EQVPS_TOKEN"
Każdy wpis ma id w rodzaju 47HZ7YF. To kod usługi, którego wymaga każde inne wywołanie. Następnie pełny obraz jednego serwera:
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 mówi, jak się zalogować. W planie z własnym IPv4 port to 22; w planie NAT to twój osobisty przekierowany port. To wywołanie tylko czyta, więc odpytywanie go w pętli jest bezpieczne.
Jeśli zamówiłeś bez klucza SSH, hasło root jest pokazywane raz:
curl -s "$API/services/47HZ7YF?reveal=1" -H "Authorization: Bearer $EQVPS_TOKEN"
Dopóki serwer jeszcze się uruchamia, odpowiedź brzmi password_pending, a jednorazowe wyświetlenie nie przepada. Odczekaj pół minuty i zapytaj ponownie.
Zasilanie: 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 to start, stop lub reboot. Serwer, który nie jest jeszcze aktywny (wciąż powstaje albo jest zawieszony za brak płatności), odpowiada 409 Service is not active. To nie błąd w twoim skrypcie. Najpierw sprawdź status.
Metryki
curl -s "$API/services/47HZ7YF/metrics?timeframe=day" -H "Authorization: Bearer $EQVPS_TOKEN"
CPU, pamięć, sieć i dysk jako szereg czasowy. timeframe to hour (domyślnie), day, week lub month. Przydatne dla zadania cron, które powiadomi cię, gdy dysk ciągle rośnie. Liczniki ruchu za bieżący okres rozliczeniowy są w Sprawdzanie prędkości i ruchu.
Zmiana nazwy serwera
curl -s -X POST $API/services/47HZ7YF/hostname \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"hostname": "web-01"}'
Nową nazwę ustawia agent gościa w działającym systemie, na Linuksie bez restartu. Jeśli serwer jest zatrzymany albo usunąłeś qemu-guest-agent, wywołanie zwraca 409 agent_unavailable i nic się nie zmienia.
Reinstalacja systemu
To wywołanie czyści dysk. API wymaga wpisania bieżącego hostname serwera w confirm, więc skrypt z błędnym id usługi nie skasuje nie tej maszyny:
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 pochodzi z listy available_os twojego planu w GET /products lub ze szczegółów samego serwera. Reinstalacja działa w tle; odpytuj GET /services/{id}, aż status znów będzie active.
Odnowienie i saldo
Serwery odnawiają się co miesiąc z przedpłaconego salda. Aby zobaczyć, ile kosztują dłuższe okresy dla tego serwera:
curl -s $API/services/47HZ7YF/renew-options -H "Authorization: Bearer $EQVPS_TOKEN"
Aby zapłacić z góry, powiedzmy za trzy miesiące, jednym wywołaniem:
curl -s -X POST $API/services/47HZ7YF/renew \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"months": 3}'
months to 1, 3, 6 lub 12, a 12 jest rozliczane po cenie rocznej z rabatem. Odpowiedź zawiera paid_from_balance: true i nową datę wygaśnięcia. Jeśli saldo nie pokrywa kwoty, nic nie jest pobierane: dostajesz paid_from_balance: false i zamiast tego checkout_url dla tej faktury. Po doładowaniu salda POST $API/invoices/{invoice_id}/pay opłaca tę fakturę z salda; jeśli wciąż brakuje, zwraca ten sam rodzaj checkout_url i niczego nie pobiera. Sprawdzanie i doładowanie salda:
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}'
Odpowiedź na doładowanie zawiera checkout_url. To płatność krypto: USDT, USDC lub ETH w sieci Base, Ethereum lub Polygon. Saldo zostaje zasilone, gdy płatność potwierdzi się w sieci. Płacenie to jedyny krok, którego skrypt nie zrobi za ciebie, chyba że ma portfel.
Monero też działa, ale tylko jako doładowanie salda z ręczną weryfikacją: wysyłasz XMR, podajesz id transakcji, a my księgujemy po sprawdzeniu. Zobacz Płatność w Monero.
Rezygnacja i zmiana zdania
Bezpieczna rezygnacja zostawia serwer działający do końca opłaconego okresu i po prostu go nie odnawia:
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 jest wymagane. Wystarczy kilka słów. Zmieniłeś zdanie przed datą?
curl -s -X POST $API/services/47HZ7YF/cancel/undo -H "Authorization: Bearer $EQVPS_TOKEN"
Istnieje też "type": "immediate". Usuwa serwer i jego dane od razu, wymaga "confirm": "<hostname>" i nie da się go cofnąć. Jeśli naprawdę nie o to chodzi, użyj end_of_period.
Utrzymanie tokenu przy życiu
Nowe tokeny żyją domyślnie rok. Każda uwierzytelniona odpowiedź ma nagłówek X-Token-Expires-At, więc skrypt może to zauważyć wcześniej. Wymień token na świeży:
curl -s -X POST $API/auth/token/refresh -H "Authorization: Bearer $EQVPS_TOKEN"
Stary token przestaje działać natychmiast, więc zapisz nowy, zanim zrobisz cokolwiek innego.
Błędy, które warto obsłużyć
| Kod | Znaczenie | Co zrobić |
|---|---|---|
| 401 | Brak tokenu, unieważniony lub wygasły | Odświeżyć lub utworzyć nowy |
| 402 | Za niskie saldo dla akcji, która korzysta tylko z salda (na przykład zmiana planu) | Doładować i powtórzyć to samo wywołanie |
| 409 | Serwer w niewłaściwym stanie (jeszcze nieaktywny, operacja w toku, nic do cofnięcia) | Przeczytać message, sprawdzić status, spróbować później |
| 422 | Pole jest błędne lub go brak | Odpowiedź wskazuje które |
| 429 | Za dużo zapytań | Poczekać Retry-After |
Robisz to z klienta AI zamiast ze skryptu? Te same akcje istnieją jako narzędzia MCP — zobacz Jak agent sam prowadzi swój VPS przez MCP i dokumentację API. Nie masz jeszcze serwera? Wybierz plan.
Komentarze
Brak komentarzy. Bądź pierwszy.