Базовый URL: https://panel.scamprojecttest.xyz/hosting/api/v1. Общие правила (авторизация, лимиты, ошибки, идемпотентность) — в обзоре.
Аккаунт
| Метод | Путь | Scope | Описание |
|---|
| GET | /users/me | vps:read | Профиль ключа и пользователя |
| GET | /users/{user_id}/balance | vps:read | Баланс |
| GET | /transactions | vps:read | Транзакции (пагинация, ?user_id=) |
| GET | /referrals | vps:read | Реферальная статистика |
Каталог и расчёт
Каталог
GET /vps/catalog · scope vps:read — тарифы, локации, ОС, периоды.
Расчёт цены
POST /vps/quote · scope vps:read
{ "plan_code": "vps-2", "period_months": 3, "os_code": "ubuntu-22" }
{ "plan_code":"vps-2","period_months":3,"os_code":"ubuntu-22","price_usd":"28.61","os_supported":true }
Серверы
| Метод | Путь | Scope | Описание |
|---|
| GET | /vps | vps:read | Список VPS (пагинация, ?user_id=) |
| GET | /vps/{id} | vps:read | Карточка VPS |
| GET | /vps/{id}/credentials | vps:read | IP, порт, root-логин/пароль |
| GET | /vps/{id}/console | vps:read | Ссылка на веб-консоль |
credentials и password возвращают расшифрованные секреты с заголовком Cache-Control: no-store. Не логируйте и не кэшируйте их.
Покупка и продление (деньги)
Требуют API_MONEY_ENABLED, scope vps:buy, заголовок Idempotency-Key и (если включена) подпись X-Signature.
Купить VPS
POST /vps · scope vps:buy · деньги · async → 202
curl -X POST "https://panel.scamprojecttest.xyz/hosting/api/v1/vps" \
-H "Authorization: Bearer $KEY" \
-H "Idempotency-Key: vps-2026-06-09-001" \
-H "Content-Type: application/json" \
-d '{"plan_code":"vps-2","location_code":"de","os_code":"ubuntu-22","period_months":1}'
{ "batch_id": "checkout:5678", "accepted": 1, "status": "pending" }
Operator указывает user_id в теле. Провижининг идёт фоном; статус — GET /batches/checkout:5678.
Продлить VPS
POST /vps/{id}/renew · scope vps:buy · деньги · тело { "period_months": 3 }
{ "vps_id": 77, "charged_usd": "28.61", "expires_at": "2026-09-09T..." }
Bulk
| Метод | Путь | Scope | Описание |
|---|
| POST | /vps/buy:bulk | vps:buy (деньги) | Массовая покупка {items:[...]} → 202 |
| POST | /vps/renew:bulk | vps:buy (деньги) | Массовое продление {items:[{vps_id,period_months}]} |
| POST | /vps/status:bulk | vps:read | Статусы {ids:[...]} |
Управление (write)
scope vps:write. Не двигают баланс, идемпотентность не требуется.
| Метод | Путь | Описание |
|---|
| POST | /vps/{id}/power/{action} | reboot · start · stop · power-toggle |
| POST | /vps/{id}/reinstall | Переустановка ОС {os_code} |
| POST | /vps/{id}/password | Сменить root-пароль (вернёт новый, no-store) |
| DELETE | /vps/{id} | Удалить сервер |
curl -X POST "https://panel.scamprojecttest.xyz/hosting/api/v1/vps/77/power/reboot" \
-H "Authorization: Bearer $KEY"
Пополнение баланса (деньги)
POST /deposits · scope deposits:write · деньги → 201. Тело и поведение — как в доменах. Статус: GET /deposits/{provider}/{external_id}.
Операторские эндпоинты
Только operator (admin:*): /admin/users/{id}/balance, /admin/users/{id}/ban, /admin/deposits/{tx}/mark-completed, /admin/deposits/{tx}/mark-failed — см. домены.