Створення, перевірка, зміна потужності, зміна розміру та вилучення ваших серверів VPS. Сервери ідентифікуються за їх uid.
Повертає сервери вашого облікового запису, нові, 25 на сторінку. Сервери, які було вилучено, не включено.
Потрібний дозвіл: servers:list
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
page |
integer | Ні | Номер сторінки, початок о 1 |
page_size |
integer | Ні | Результати на сторінку (типово 25, максимальний 100) |
curl -X GET "https://admin.vps.org/api/v1/servers/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.get(url, headers=headers)
for server in response.json()["results"]:
print(server["uuid"], server["hostname"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});
const data = await response.json();
console.log(data.results);
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
foreach ($data['results'] as $server) {
echo $server['hostname'] . ' ' . $server['status'] . "\n";
}
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
"hostname": "web-01",
"status": "on",
"error_description": null,
"location_name": "New Jersey",
"plan_name": "1 vCPU / 2 GB RAM / 10 GB",
"os_name": "Ubuntu",
"ipv4_addresses": ["203.0.113.10"],
"ipv6_addresses": ["2001:db8:2:dd::f9:6b"],
"created_at": "2026-07-30T03:54:14.914364Z",
"deployed": true
},
{
"uuid": "2d7e9b40-6c1a-4f3e-8b5d-9a0c1e2f3b4d",
"hostname": "db-01",
"status": "queue",
"error_description": null,
"location_name": "New Jersey",
"os_name": "Debian",
"ipv4_addresses": [],
"ipv6_addresses": [],
"created_at": "2026-09-14T19:33:49.426508Z",
"deployed": false
}
]
}
| Поле | Тип | Опис |
|---|---|---|
uuid |
string | Ідентифікатор сервера, який буде використано у кожній іншій точці сервера |
hostname |
string | Назва вузла, яку ви обрали під час створення сервера |
status |
string | Поточний стан. Нижче ви можете ознайомитися з значеннями стану сервера. |
error_description |
string | null | Подробиці про останню невдачу у разі помилки стану, у іншому випадку - нульовий |
location_name |
string | Назва місця, у якому запущено сервер |
os_name |
string | Назва операційної системи, без версії |
plan_name |
string | Резюме придатного для читання плану, наприклад, 1 vCPU / 2 ГБ ОЗП / 10 ГБ |
ipv4_addresses |
array | IPv4 - це рядки. Порожня адреса, доки сервер не буде застосовано, і у планах без IPv4. |
ipv6_addresses |
array | IPv6 - це рядки. Порожня адреса до часу, коли сервер буде застосований. |
created_at |
datetime | Час створення (ISO 8601, UTC) |
deployed |
boolean | Так, після завершення переходу |
| 200 | Список серверів успішно отримано |
| 403 | Відсутній або некоректний ключ API або елемент не має потрібного дозволу |
Поставити у чергу новий сервер для впровадження і повернути його негайно з черги стану. У тлі продовження роботи продовжується: опитування кінцевої точки стану до встановлення буде виконано. Після того, як сервер буде готовий, параметри його входу до системи буде надіслано власнику облікового запису.
У вашому обліковому записі має бути збережений спосіб оплати. Залежно від історії вашого облікового запису, перед створенням сервера на вашу картку може бути тимчасово заблоковано суму приблизно за тиждень оплати плану (щонайменше 1 USD).
Потрібний дозвіл: servers:create
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
hostname |
string | Так | Щонайменше 3 символи. Тільки літери, цифри, дефіси та крапки. |
location_id |
integer | Так | Ідентифікатор активної адреси API Locations |
plan_uuid |
string | Так | uuid активного плану з API Plans |
operating_system_version_uuid |
string | Так | uid активного запису у списку версій операційної системи |
ssh_key_uuids |
array | Ні | UUID ключів SSH з API SSH, які слід встановити на сервері |
ssh_key_ids |
array | Ні | Ідентифікатори Integer клавіш SSH, як альтернативу ssh_ key_ uuids. Якщо ви надсилаєте обидва ключі, буде використано ssh_ key_ id. |
ssh_key_uuid, ssh_key_id |
string, integer | Ні | Коротке позначення для одного ключа SSH |
auth_method |
string | Ні | пароль, ssh_ key або обидва ці ключі. Типово, пароль або обидва ключі для використання у SSH. |
curl -X POST "https://admin.vps.org/api/v1/servers/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"hostname": "web-01",
"location_id": 1,
"plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"ssh_key_uuids": ["YOUR_SSH_KEY_UUID"]
}'
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {
"hostname": "web-01",
"location_id": 1,
"plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"ssh_key_uuids": ["YOUR_SSH_KEY_UUID"],
}
response = requests.post(url, headers=headers, json=data)
server = response.json()
print(response.status_code, server["uuid"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
hostname: 'web-01',
location_id: 1,
plan_uuid: '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
operating_system_version_uuid: 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
ssh_key_uuids: ['YOUR_SSH_KEY_UUID']
})
});
const server = await response.json();
console.log(server.uuid, server.status);
$data = [
'hostname' => 'web-01',
'location_id' => 1,
'plan_uuid' => '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
'operating_system_version_uuid' => 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
'ssh_key_uuids' => ['YOUR_SSH_KEY_UUID']
];
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server = json_decode(curl_exec($ch), true);
curl_close($ch);
201 Створено з повним об' єктом сервера, описаним у розділі Отримати подробиці сервера. Адреси і vmid буде заповнено після завершення роботи.
{
"uuid": "5f0c8e2a-6b1d-4c3e-9a7f-2d4b6c8e0a1f",
"hostname": "web-01",
"vmid": null,
"status": "queue",
"error_description": null,
"location": {
"id": 1,
"name": "New Jersey",
"country_name": "United States",
"is_active": true
},
"plan": {
"uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
"cpu": 1,
"ram": 2,
"ram_unit": "GB",
"disk_space": 10,
"disk_space_total": 10240,
"transfer": 500,
"price": "3.50",
"cpu_type_name": "Shared",
"is_active": true,
"hourly_price": "0.005",
"monthly_price": "3.50",
"is_gpu": false,
"gpu_count": 0,
"gpu_model": ""
},
"operating_system": {
"id": 1,
"name": "Ubuntu",
"svg_icon": "<svg ...>",
"versions": [ ... ]
},
"operating_system_version": {
"uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"name": "24.04 LTS x64",
"os_name": "Ubuntu",
"os_svg_icon": "<svg ...>",
"is_active": true
},
"ipv4_addresses": [],
"ipv6_addresses": [],
"deployed": false,
"created_at": "2026-09-14T21:02:11.402113Z",
"recent_actions": []
}
| 201 | Сервер створено і поставлено у чергу для впровадження |
| 400 | Помилка під час перевірки, наприклад, неактивна адреса, план або версія операційної системи |
| 402 | Жодного способу сплати за файлами, неоплачуваних рахунків або було відкинуто попередньої уповноваження на картку |
| 403 | Відсутній або некоректний ключ API або елемент не має потрібного дозволу |
| 429 | Ваш обліковий запис досягнув обмеження на створення сервера |
Повертає один сервер з його адресою, планом, операційною системою, IP- адресами і п' ятьма останніми діями.
Потрібний дозвіл: servers:list
curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
"hostname": "web-01",
"vmid": 1042,
"status": "on",
"error_description": null,
"location": {
"id": 1,
"name": "New Jersey",
"country_name": "United States",
"is_active": true
},
"plan": {
"uuid": "14186969-fbaf-43e1-9ab2-b1f1aeb66674",
"cpu": 1,
"ram": 2,
"ram_unit": "GB",
"disk_space": 25,
"disk_space_total": 25600,
"transfer": 1,
"price": "5.00",
"cpu_type_name": "Shared",
"is_active": true,
"hourly_price": "0.007",
"monthly_price": "5.00",
"is_gpu": false,
"gpu_count": 0,
"gpu_model": ""
},
"operating_system": {
"id": 1,
"name": "Ubuntu",
"svg_icon": "<svg ...>",
"versions": [ ... ]
},
"operating_system_version": {
"uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
"name": "24.04 LTS x64",
"os_name": "Ubuntu",
"os_svg_icon": "<svg ...>",
"is_active": true
},
"ipv4_addresses": [
{
"ip": "203.0.113.10",
"gateway": "203.0.113.1",
"subnet": "203.0.113.0",
"rdns": "web-01.example.com"
}
],
"ipv6_addresses": [
{
"ip": "2001:db8:2:dd::f9:6b",
"gateway": "2001:db8:2:dd::f9:1",
"subnet": "2001:db8:2:dd::f9:0",
"rdns": "web-01.example.com"
}
],
"deployed": true,
"created_at": "2026-07-30T03:54:14.914364Z",
"recent_actions": [
{
"id": 17028,
"action": "create",
"action_display": "Create",
"description": "Server deployed with VMID 1042",
"user_email": "you@example.com",
"created_at": "2026-07-30T03:54:32.860854Z"
}
]
}
Розмітка піктограм SVG і список версій буде скорочено.
| Поле | Тип | Опис |
|---|---|---|
vmid |
integer | null | Номер віртуальної машини, встановленої під час її виконання |
location |
object | Об' єкт адреси, повернений API розташування |
plan |
object | Планувати об' єкт, як повертає його API Plans |
operating_system, operating_system_version |
object | Операційна система і встановлена версія, яку повертає операційний API |
ipv4_addresses, ipv6_addresses |
array | Один об' єкт на одну адресу з ip, ip, pswire і rrns (поворотною назвою вузла DNS) |
recent_actions |
array | До п' яти останніх дій: id, action, action_ display, description, user_ email, create_ at |
| 200 | Успішно отримано дані сервера |
| 404 | Не знайдено або він належить іншому обліковому запису |
Легкий виклик для опитування після створення, вимикання або зміни розміру сервера.
curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/status/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"status": "on",
"deployed": true,
"resizing": false
}
| Значення | Опис |
|---|---|
queue |
Дія (розмір, потужність, зміна розміру, відновлення) виконується у черзі або в черзі |
deploying |
Перелік даних. Сервери, створені на панелі керування, використовують цей стан; сервери, створені за допомогою API, залишаються у черзі до їх створення. |
on |
Працює |
off |
Вимкнено |
error |
Остання дія зазнала невдачі. Див. помилку_ опис. |
suspended_payment |
Призупинено через неоплачувані рахунки |
Додати до черги дію з живлення. Стан сервера змінюється у чергу до завершення дії.
Потрібний дозвіл: servers:power
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
action |
string | Так |
start: живленняshutdown: ніжне завершення роботи, змушене вимикатися якщо гість не зупинитьсяrestart: жорсткий цикл (зупинка, потім початок)stop: Зараз виконує той самий цикл живлення, що і перезапуск. Скористайтеся кнопкою вимикання, щоб залишити сервер.
|
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/power/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "restart"}'
import requests
server_uuid = "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b"
url = f"https://admin.vps.org/api/v1/servers/{server_uuid}/power/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.post(url, headers=headers, json={"action": "restart"})
print(response.json())
{
"message": "Server restart queued"
}
| 200 | Дія була поставлена у чергу |
| 400 | Не вистачає або не підтримується дії |
| 402 | start відмовлено, оскільки рахунок не оплачено |
| 404 | Не знайдено або він належить іншому обліковому запису |
Пересуває сервер до іншого активного плану. Новий план не може мати менше місця на диску, ніж поточний, а тіло запиту має включати набір дій, щоб змінити розмір. Можливість гіпервізизора для нового плану буде перевірено до того, як у черзі буде відмовлено, отже запит залишить сервер незмінним.
Сервер буде закрито під час зміни розміру і запущено знову. Якщо зміна розміру зазнає невдачі, сервер буде повернуто до попереднього плану і запущено знову, якщо його запущено. Приріст диска не можна скасувати.
Потрібний дозвіл: servers:resize
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
action |
string | Так | Має бути змінений розмір |
new_plan_uuid |
string | Так | uid плану для переїзду до |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/resize/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action": "resize", "new_plan_uuid": "5e26a4a6-bd0c-467c-abca-da036c811c3f"}'
{
"message": "Resize queued successfully"
}
Приклад зміни розміру відмовленого (409):
{
"error": "Not enough hypervisor capacity for the selected plan; the server was not changed"
}
| 200 | Дія була поставлена у чергу |
| 400 | Відсутній дія або новий_ plan_ uuid, некоректний або неактивний план, план з меншим об' ємом на диску або план GPU (плани GPU не можна змінювати за допомогою API) |
| 404 | Не знайдено або він належить іншому обліковому запису |
| 409 | Зміна розміру або зберігання вже виконується, або недостатньо можливостей для нового плану |
| 503 | Зараз неможливо перевірити місткість. Сервер не було змінено; спробуйте пізніше. |
Створює новий пароль адміністратора, повертає його у відповідь і чергує зміну на сервері. Новий пароль також буде надіслано вам. Слід встановити сервер. Не потрібно вказувати текст запиту.
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/reset-password/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"message": "Password reset queued. New password will also be emailed to you.",
"password": "generated-password",
"job_id": "b6f1c7e2-3a4d-4f5e-8b9c-0d1e2f3a4b5c"
}
| 200 | Дія була поставлена у чергу |
| 400 | Сервер ще не було встановлено |
| 404 | Не знайдено або він належить іншому обліковому запису |
Отримання списку зворотної назви вузла DNS всіх IPv4 і IPv6 на сервері. POST встановлює її для однієї адреси. Надсилання порожньої назви вузла відновить типові значення назви DNS.
Потрібний дозвіл: servers:update
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
ip |
string | Так | IPv4 або IPv6- адреса, призначена цьому серверу |
hostname |
string | Ні | Назва вузла PTR. Залиште порожнім, щоб повернутися до типового значення. |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/rdns/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ip": "203.0.113.10", "hostname": "mail.example.com"}'
{
"message": "Reverse DNS for 203.0.113.10 set to mail.example.com",
"ip": "203.0.113.10",
"hostname": "mail.example.com"
}
Відповідь:
{
"rdns": [
{"ip": "203.0.113.10", "hostname": "mail.example.com"},
{"ip": "2001:db8:2:dd::f9:6b", "hostname": "mail.example.com"}
]
}
| 400 | Немає ip, або не вдалося встановити назву вузла |
| 404 | IP- адреса не призначена цьому серверу |
Виконує команду оболонки всередині сервера за допомогою агента- гостя QEMU і чекає на завершення її виконання. Сервер слід встановити і запустити, а також встановити qemu- guest- agent і запустити у готелю.
Потрібний дозвіл: servers:exec
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
command |
string | Так | Командний рядок виконується з / bin/ sh - c, аж до 2000 символів |
timeout |
integer | Ні | Секунди очікування команди від 1 до 300 (типово 30) |
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/exec/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"command": "uptime", "timeout": 30}'
{
"stdout": " 21:14:03 up 46 days, 2:10, 0 users, load average: 0.08, 0.03, 0.01\n",
"stderr": "",
"exit_code": 0,
"timed_out": false
}
Якщо команда все ще виконується під час завершення очікування, відповідь має значення timed_ out встановити значення true і exit_ code встановити нульовий код.
| 200 | Команду завершено або перевищено час очікування |
| 400 | Сервер не було запущено або не було запущено, або некоректні параметри |
| 409 | На сервері не запущено агент- гостельник QEMU |
| 503 | Проблема тимчасового з' єднання. Спробуйте ще раз після заголовка " Повторити " після. |
Поставити сервер у чергу для постійного вилучення. Сервер негайно зникає зі списку, його не можна відновити.
Потрібний дозвіл: servers:delete
curl -X DELETE "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"message": "Server deletion queued"
}
| 202 | Прийнято: запит було поставлено до черги |
| 404 | Не знайдено або він належить іншому обліковому запису |
Зберігати відкриті ключі SSH у вашому обліковому записі, а потім передавати свої uid як ssh_ key_ uuids після створення сервера. У списку можна знайти ваші ключі (25 на сторінку); POST додає один.
Потрібний дозвіл: ssh-keys:list (GET), ssh-keys:create (POST)
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
name |
string | Так | Назва для розпізнавання ключа, до 100 символів |
public_key |
string | Так | Відкритий ключ у форматі OpenSSH, наприклад, вміст id_ ed25519. pub |
curl -X POST "https://admin.vps.org/api/v1/ssh-keys/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop"}'
import requests
url = "https://admin.vps.org/api/v1/ssh-keys/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
with open("/home/you/.ssh/id_ed25519.pub") as f:
data = {"name": "laptop", "public_key": f.read().strip()}
response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json()["uuid"])
{
"id": 19,
"uuid": "6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c",
"name": "laptop",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop",
"fingerprint": "0b:4c:9b:48:76:e7:1d:07:b9:ac:71:90:70:f7:9a:69",
"created_at": "2026-08-23T19:16:11.547183Z",
"last_used_at": null
}
| Поле | Тип | Опис |
|---|---|---|
id, uuid |
integer, string | Ідентифікатори ключів. Скористайтеся uuid у ssh_ key_ uuids і в адресі URL, розташованій нижче; id працює у ssh_ key_ id. |
fingerprint |
string | Відбиток відбитка MD5 ключа, обчисленого за платформою |
last_used_at |
datetime | null | Коли ключ було востаннє встановлено на новому сервері |
| 201 | Додано ключ |
| 400 | Немає назви або відкритий ключ не є чинним відкритим ключем SSH |
Поставити один ключ з вказаним вище полем. DELETE вилучає його з вашого облікового запису і повертає 204 без вмісту. Вилучення ключа не вилучає його з серверів, на яких його було встановлено. Змінити ключі неможливо: вилучити і додати знову.
Потрібний дозвіл: ssh-keys:list (GET), ssh-keys:delete (DELETE)
curl -X DELETE "https://admin.vps.org/api/v1/ssh-keys/6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Створення резервної копії або знімка є також дією сервера:
POST /api/v1/servers/{uuid}/backup/: API резервних копійPOST /api/v1/servers/{uuid}/snapshot/: API знімків