Създаване, проверка, захранване, промяна на размера и изтриване на вашите 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 USD) може да бъде поставена на вашата карта преди създаването на сървъра.
Изискан разрешение: servers:create
| Параметр | Тип | Задължително | Описание |
|---|---|---|---|
hostname |
string | Да | Поне 3 символа. Само букви, цифри, черпи и периоди. |
location_id |
integer | Да | Идентификатор на активно място от API за местоположения |
plan_uuid |
string | Да | Ууид на активен план от API Планове |
operating_system_version_uuid |
string | Да | Ууид на активен запис в списъка на версии на оперативната система |
ssh_key_uuids |
array | Не. | УУИД на SSH ключове от SSH Keys API за инсталиране на сървъра |
ssh_key_ids |
array | Не. | Целобройни ІД на SSH ключове, като алтернатива на ssh_ key_ uuids. Ако и двете са изпратени, използват ssh_ key_ ids. |
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 Създаден с целия сървър обект, описан в Get Details. Адресите и 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, шлюз, подмрежа и rdns (обратният DNS- име на име) |
recent_actions |
array | До пет последни действия: id, action, action_display, description, user_ email, created_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 | Не е намерено или принадлежи на друга сметка |
Премества сървъра към друг активен план. Новият план не може да има по- малко място на диска от текущия, а тялото на искането трябва да включва действие, за да промени размера. Капацитет на Hypervisor за новия план се проверява преди да се опакова нещо, така че отказване на искане оставя сървъра непроменен.
Серверът се изключва, докато се променя и се стартира отново. Ако промяната на размера не се провали, сървърът се пуска отново на предишния си план и започва отново, ако е стартиран. Разрастването на диска не може да бъде отменено.
Изискан разрешение: servers:resize
| Параметр | Тип | Задължително | Описание |
|---|---|---|---|
action |
string | Да | Трябва да бъде променен размерът |
new_plan_uuid |
string | Да | Ууид на плана за преместване |
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 | Капацитет не може да бъде проверен точно сега. Серверът не е променен; повторете отново по- късно. |
Генерира нова root парола, връща я в отговора и редица промяна на сървъра. Новата парола също е изпратена на вашия адрес. Серверът трябва да бъде включен. Няма нужда от задаване на искане.
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 | Не. | Името на домакината на 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- goest-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
}
Ако командата все още работи, когато изтича срокът на действие, отговорът е определен на тайм и exectu_ 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 ключове в акаунт, след което предавате ууидите си като ssh_key_uuids при създаването на сървър. Get lists your keys (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 |
Връща един ключ с полетата по-горе. 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 за снимки