Поръчката на сървър през API е една заявка. За това е Поръчка на VPS с 4 извиквания на API. Тази страница е за всичко след това: рутинните действия, които иначе бихте правили с кликове в кабинета, записани като curl команди за поставяне в скрипт.
Всяка команда по-долу изпълнихме срещу нашия API преди публикуване, а отговорите са съкратени копия на върнатото.
Подготовка
Две променливи държат командите кратки:
export API=https://api.eqvps.com/api/v1/eqvps
export EQVPS_TOKEN='paste-your-token-here'
Токенът идва от POST /auth/register или от Settings → API tokens в кабинета. Пазете го извън историята на shell, ако машината се ползва и от други; достатъчно е да го четете от файл с export EQVPS_TOKEN=$(cat ~/.eqvps_token).
Намерете сървърите си
curl -s $API/services -H "Authorization: Bearer $EQVPS_TOKEN"
Всеки запис има id като 47HZ7YF. Това е кодът на услугата, който приемат всички останали извиквания. След това пълната картина на един сървър:
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"
Докато сървърът още стартира, отговорът казва 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. Сървър, който още не е активен (още се създава или е спрян за неплащане), отговаря с 409 Service is not active. Това не е грешка в скрипта ви. Проверете първо status.
Метрики
curl -s "$API/services/47HZ7YF/metrics?timeframe=day" -H "Authorization: Bearer $EQVPS_TOKEN"
CPU, памет, мрежа и диск като времеви ред. timeframe е hour (по подразбиране), day, week или month. Удобно за cron задача, която ви известява, когато дискът расте непрекъснато. Броячите на трафика за текущия период са в Проверка на скоростта и трафика.
Преименуване на сървъра
curl -s -X POST $API/services/47HZ7YF/hostname \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"hostname": "web-01"}'
Новото име се прилага в работещата система от гост агента, на Linux без рестарт. Ако сървърът е спрян или сте премахнали qemu-guest-agent, извикването връща 409 agent_unavailable и нищо не се променя.
Преинсталиране на ОС
Това изтрива диска. API ви кара да въведете текущия hostname на сървъра в confirm, така че скрипт с грешно 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 или от данните на самия сървър. Преинсталирането върви във фонов режим; проверявайте GET /services/{id}, докато status отново стане active.
Подновяване и баланс
Сървърите се подновяват всеки месец от предплатения баланс. За да видите колко струват по-дълги срокове за този сървър:
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. Балансът се захранва, щом плащането се потвърди в мрежата. Плащането е единствената стъпка, която скриптът не може да направи вместо вас, освен ако не държи портфейл.
Monero също работи, но само като зареждане на баланса с ръчна проверка: изпращате XMR, подавате id на транзакцията и ние я заверяваме след проверка. Вижте Плащане с Monero.
Отказ и промяна на решението
Безопасният отказ оставя сървъра да работи до края на платения период и просто не го подновява:
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". Той изтрива сървъра и данните веднага, изисква "confirm": "<hostname>" и не може да се отмени. Освен ако наистина не искате точно това, ползвайте end_of_period.
Поддържайте токена жив
Новите токени по подразбиране живеят една година. Всеки удостоверен отговор носи заглавка X-Token-Expires-At, така че скриптът може да забележи навреме. Сменете токена с нов:
curl -s -X POST $API/auth/token/refresh -H "Authorization: Bearer $EQVPS_TOKEN"
Старият токен спира да работи веднага, затова запазете новия, преди да направите каквото и да е друго.
Грешки, които си струва да обработите
| Код | Какво означава | Какво да направите |
|---|---|---|
| 401 | Токенът липсва, отменен е или е изтекъл | Подновете или създайте нов |
| 402 | Балансът е твърде нисък за действие, което взима само от баланса (например смяна на плана) | Заредете и повторете същото извикване |
| 409 | Сървърът е в неподходящо състояние (още не е активен, тече операция, няма какво да се отмени) | Прочетете message, проверете status, опитайте по-късно |
| 422 | Поле е грешно или липсва | Отговорът казва кое |
| 429 | Твърде много заявки | Изчакайте Retry-After |
Правите това от ИИ клиент вместо от скрипт? Същите действия съществуват като MCP инструменти — вижте Как ИИ агент сам поддържа своя VPS през MCP и справочника на API. Още нямате сървър? Изберете план.
Коментари
Още няма коментари. Бъди първият.