Создать, осмотреть, покорить, переоформить и удалить серверы VPS. Серверы идентифицируются по их uuid.
Вернуть серверы на ваш Аккаунт, первый раз 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 GB RAM / 10 GB |
ipv4_addresses |
array | IPv4 адресов как струн. Пустой до ввода в действие сервера и по планам без IPv4. |
ipv6_addresses |
array | IPv6 адреса как строки. Пустой до ввода в действие сервера. |
created_at |
datetime | Время создания (ISO 8601, UTC) |
deployed |
boolean | Правда, когда поставка окончена |
| 200 | Список серверов успешно получен. |
| 403 | Недопущенный или недействительный токен API или же знак не имеет требуемого разрешения |
Выбрать новый сервер для ввода в эксплуатацию и немедленно вернуть его со очереди статуса. Продолжить работу на заднем плане: опросить конечных точек состояния до его ввода в эксплуатацию является правдой. Когда сервер готов, его данные о входе в систему направляются по электронной почте владельцу счета.
В зависимости от вашего счета, до создания сервера на вашу карточку может быть помещена временная предварительная сумма в размере примерно одной недели от цены плана (по крайней мере 1 долл. США).
Требуемое разрешение: servers:create
| Параметр | Тип | Необходимый | Описание |
|---|---|---|---|
hostname |
string | Да | Минимум 3 символа. Только буквы, цифры, дефисы и точки. |
location_id |
integer | Да | Идентификатор активного места расположения АПИ |
plan_uuid |
string | Да | Планы API предусматривают активный план |
operating_system_version_uuid |
string | Да | Убедительная запись в списке вариантов операционной системы |
ssh_key_uuids |
array | Нет | УВЭЙД ключей SSH из SSH Keys API для установки на сервере |
ssh_key_ids |
array | Нет | INTEGER IDs из ключей SSH, в качестве альтернативы ssh_key_uuids. Если оба отсылаются, то используются ssh_key_ids. |
ssh_key_uuid, ssh_key_id |
string, integer | Нет | Короткая сторона для одного ключа SSH |
auth_method |
string | Нет | пароль, ssh_ключ или оба. По умолчанию пароль, или оба, когда поставляются ключи 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 Создан с полным серверным объектом, описанным в разделе Get Server Defacts. Адреса и 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 |
operating_system, operating_system_version |
object | Эксплуатационные системы и установленная версия, возвращенные операционными системами API |
ipv4_addresses, ipv6_addresses |
array | Один объект на адрес с ip, шлюзом, субсетью и дроном (заднее имя DNS) |
recent_actions |
array | До пяти самых последних действий: идентификатор, действие, действие_дискуляция, описание, пользователь_электронная почта, созданное_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 | отказ в связи с неоплаченными счетами-фактурами |
| 404 | Не найдена, или принадлежит другому счету. |
Перенос сервера в другой активный план. Новый план не может иметь меньше места на диске, чем текущий, и орган запроса должен включать действие для изменения размера. Проверяется мощность гипервизора для нового плана до того, как что-либо будет установлено в очереди, поэтому отказ в запросе оставляет сервер без изменений.
Сервер отключается, когда он перестраивается и начинается снова. Если перезапуск не работает, сервер снова включается в предыдущий план и запускается снова, если он работает. Диск не может быть отменен.
Требуемое разрешение: servers:resize
| Параметр | Тип | Необходимый | Описание |
|---|---|---|---|
action |
string | Да | Должно быть, переоценить |
new_plan_uuid |
string | Да | uuid плана, на который выполняется переход |
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 | Недопущенный план или новый план_уид, недействительный или неактивный план, план с меньшим пространством для диска или план 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 | Не найдена, или принадлежит другому счету. |
GET перечисляет обратное имя DNS-строителя каждого IPv4 и IPv6 адреса на сервере. POST устанавливает его на один адрес. Отправляя пустое имя-индоним-интендент перезагрузить адрес на обратное имя DNS.
Требуемое разрешение: servers:update
| Параметр | Тип | Необходимый | Описание |
|---|---|---|---|
ip |
string | Да | Адрес IPv4 или IPv6, присвоенный этому серверу |
hostname |
string | Нет | Имя PRTR. Оставьте пустым, чтобы перезагрузить по умолчанию. |
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"
}
Ответ GET:
{
"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 и ждать, пока он закончит. Сервер должен быть запущен и запущен, а агент кему-густа должен быть установлен и запущен в госте.
Требуемое разрешение: 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
}
Если команда все еще работает, когда заканчивается время выхода, то ответ на время_выход установлен в talk и выход_код установлен в нечетную.
| 200 | Команда завершена или отсрочена |
| 400 | Не запущенный сервер или не запущенный сервер, или неверные параметры |
| 409 | Гостевой агент QEMU не работает на сервере |
| 503 | Проблема временной связи. Перейти после заголовка Retry-Lost. |
Выбрать сервер для постоянного исключения. Сервер исчезает из списка немедленно и не может быть найден.
Требуемое разрешение: 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, затем передать их uuids как ssh_key_uuids, когда вы создаёте сервер. GET перечисляет ваши ключи (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_ids. |
fingerprint |
string | Отпечатки ключа MD5 по платформе |
last_used_at |
datetime | null | Когда ключ был установлен в последний раз на новом сервере |
| 201 | Добавленный ключ |
| 400 | Недостающее название или публичный ключ не является действительным публичным ключом SSH |
GET возвращает один ключ с полем выше. 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 снимков