VPS.org API

РЕСТЕПНА АПИ документација

API сервера

Ствара, проверава, напаја, мења величину и брисање ВПС сервера. Сервере идентификују њихови ууиди.

Крајње тачке 15
Основна путања /api/v1/servers
ДОБИЈ /api/v1/servers/

Листа свих сервера

Враћа сервере на вашем налогу, најновије прво, 25 по страници. Сервери који се бришу нису укључени.

Неопходна дозвола: servers:list

Параметри упита

Параметар Тип Обавезно Опис
page integer Не. Број странице, од 1
page_size integer Не. Резултати по страници (подразумевано 25, максимум 100)

Пример захтева

cURL
Python
JavaScript
PHP
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 ИПв4 адресе као ниске. Празни док сервер не буде покренут, и на плановима без ИПв4.
ipv6_addresses array ИПв6 адресе као ниске. Празни док сервер не буде попуњен.
created_at datetime Време стварања (ISO 8601, UTC)
deployed boolean Тачно када се одредба заврши

Кодови статуса одговора

200 Листа сервера је успешно преузета
403 Недостаје или неисправан АПИ торент, или неисправна дозвола недостаје
ПОСТ /api/v1/servers/

Креирај нови сервер

У реду за распоред и одмах га враћа са редом стања. Наставља се пружање у позадини: анкета крајњег крајњег краја стања до покретања. Када је сервер спреман, његови подаци о пријављивању биће послати поште власнику налога.

Налогу је потребан сачувани начин исплате. У зависности од историје налога, привремено припремно припремање око недељу дана од цене плана (најмање 1 лв.) може се поставити на вашу картицу пре него што се сервер направи.

Неопходна дозвола: servers:create

Захтевајте параметре тела

Параметар Тип Обавезно Опис
hostname string Да Најмање 3 знака, слова, цифре, цртежи и само периоди.
location_id integer Да ИД активне локације из АПИ локација
plan_uuid string Да Ууид активног плана из АПИ плана
operating_system_version_uuid string Да Ууид активног уноса на списку верзија оперативног система
ssh_key_uuids array Не. УУИДови ССХ тастера из АПИ ССХ тастера за инсталирање на серверу
ssh_key_ids array Не. Целобројни ИД‐ ови СХ кључева, као алтернатива ssh_ key_ uuids. Ако су оба послата, користи се ssh_ key_ ids.
ssh_key_uuid, ssh_key_id string, integer Не. Кратка рука за један SSH кључ
auth_method string Не. лозинка, ssh_ key или оба. Подразум› ијевано је за лозинку, или оба приликом додавања тастера SSH.

Пример захтева

cURL
Python
JavaScript
PHP
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 Направљен са објектом пуног сервера описаним под Гет Детаљи сервера. Адресе и мид су попуњени једном завршетком распореда.

{
  "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 Недостаје или неисправан АПИ торент, или неисправна дозвола недостаје
429 Ваш налог је достигао ограничење стварања сервера
ДОБИЈ /api/v1/servers/{uuid}/

Преузмите детаље сервера

Враћа један сервер са локацијом, планом, операционим системом, ИП адресама и пет најновијих радњи.

Неопходна дозвола: 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"
    }
  ]
}

СВГ маркирање икона и списак верзија се скраћује.

Поља за одговор

Поље Тип Опис
vmid integer | null Број виртуелне машине, постављен током распореда
location object Објекат локације, који је вратио АПИ локација
plan object Планирајте објекат, који враћа АПИ Планова
operating_system, operating_system_version object Оперативни систем и инсталирана верзија, која је вратила АПИ операционих система
ipv4_addresses, ipv6_addresses array Један објект по адреси са ИП, пролазом, подмрежом и рднсом (обрнуто ДНС име домаћина)
recent_actions array До пет последњих радњи: ИД, радња, action_ display, опис, user_ email, created_at

Кодови статуса одговора

200 Успешно преузети подаци о серверу
404 Није нађена, или припада другом налогу
ДОБИЈ /api/v1/servers/{uuid}/status/

Стање сервера

Лагани позив за анкету након што направите, моћ или пром› јену броја сервера.

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 Да ли сте на располагању. Сервери направљени из контролног панела користе ово стање; сервери направљени кроз АПИ остају у реду док не буду спремни.
on покрећем
off Укључен
error Последња радња није успела. Погледајте опис грешке.
suspended_payment Суспендовано због неплаћених рачуна
ПОСТ /api/v1/servers/{uuid}/power/

Напајање сервера за контролу

У реду радња напајања. Стање сервера мења редослед док радња не заврши.

Неопходна дозвола: servers:power

Захтевајте параметре тела

Параметар Тип Обавезно Опис
action string Да start: напајање
shutdown: грациозно гашење, принуђено ако гост не престане
restart: тежак циклус напајања (заустави, затим покрени)
stop: Тренутно изводи исти циклус напајања као и поново покрећење. Користите гашење да оставите искључен сервер.

Пример захтева

cURL
Python
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 Није нађена, или припада другом налогу
ПОСТ /api/v1/servers/{uuid}/resize/

Пром› ијени величину сервера

Премешта сервер на други активни план. Нови план не може имати мање простора на диску од тренутног, а тело захт› ијева мора да укључује радњу постављену за промену величине. Пре него што се нешто у реду провери, пром› јена хипервизора је непром› јењена, па се одбијени захт› јев оставља непром› јену сервера.

Сервер се угаси док се мења и поново покреће. Ако промене промене неуспеха, сервер се враћа на претходни план и поново покреће ако се ради. Растући диск не може бити опозван.

Неопходна дозвола: 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 Недостаје радња или нови_ план_ ууид, неисправан или неактиван план, план са мање простора на диску или ГПУ план (планови ГПУ‐ а не могу се променити кроз АПИ)
404 Није нађена, или припада другом налогу
409 Пром› јена величине или складишта већ је у току, или нема довољно капацитета хипервизора за нови план
503 Не могу одмах да проверим капацитет. Сервер није пром› ијењен; поново понови касније.
ПОСТ /api/v1/servers/{uuid}/reset-password/

Ресетуј коренску лозинку

Ствара нову корену лозинку, враћа је у одговору и у реду је изм› јену на серверу. Нова лозинка вам је такође послата. Сервер мора бити покренут. Није потребно тело захтева.

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 Није нађена, или припада другом налогу
ДОБИЈ ПОСТ /api/v1/servers/{uuid}/rdns/

Обрнуто ДНС (ПТР)

Гет набраја обрнуто ДНС име домаћина сваке ИПв4 и ИПв6 адресе на серверу. ПОСТ поставља за једну адресу. Слање празног имена домаћина поновно поставља адресу на подразум› ијевано обрнуто ДНС име.

Неопходна дозвола: servers:update

Захтевајте параметре тела (POST)

Параметар Тип Обавезно Опис
ip string Да ИПв4 или ИПв6 адреса додељена овом серверу
hostname string Не. Име домаћина ПТР‐ а. Остави празно да би се ресетовао на подразумевано.
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 ИП недостаје, или име домаћина није могло да се постави
404 ИП адреса није додељена овом серверу
ПОСТ /api/v1/servers/{uuid}/exec/

Изврши наредбу на серверу

Извршава наредбу шкољке унутар сервера преко QEMU госте агента и чека да се заврши. Сервер мора бити покренут и покренут, а qemu- gost- 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
}

Ако се наредба и даље покреће када истеке истек, одговор је тајминг задати на true и exit_ code постављен на null.

Кодови статуса одговора

200 Наредба је завршена или истекло вр› ијеме
400 Сервер није покренут или није покренут, или неисправни параметри
409 КуЕМУ гост агент не ради на серверу
503 Проблем привремене везе. Понови после заглавља Понављања.
ОБРИШИ /api/v1/servers/{uuid}/

Обриши сервер

У реду је сервер за трајно брисање. Сервер нестаје одмах са списка и не може бити опорављен.

Неопходна дозвола: 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 Није нађена, или припада другом налогу
ДОБИЈ ПОСТ /api/v1/ssh-keys/

ССХ тастери

Списајте јавне кључеве СХХ у налогу, а затим прођите њихове ууиде као ssh_ key_ uuids када стварате сервер. Гет набраја своје кључеве (25 по страници); ПОСТ додаје један.

Неопходна дозвола: ssh-keys:list (GET), ssh-keys:create (POST)

Захтевајте параметре тела (POST)

Параметар Тип Обавезно Опис
name string Да Име које препознаје кључ, до 100 знакова
public_key string Да Јавни кључ у формату OpenSSH, на пример садржај ИД_ed25519. pab

Пример захтева

cURL
Python
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 и у УРЛ‐ у испод; ИД ради у ssh_ key_ ids.
fingerprint string МД5 отисак кључа, израчунао платформу
last_used_at datetime | null Када је кључ последњи пут инсталиран на новом серверу

Кодови статуса одговора

201 Додани кључ
400 Недостаје име, или јавни кључ није ваљан јавни кључ ССХ‐ а
ДОБИЈ ОБРИШИ /api/v1/ssh-keys/{uuid}/

Узми или обриши ССХ кључ

Враћа један кључ са горе наведеним пољима. ДЕЛЕТЕ га уклања са налога и враћа 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"

Појачања и снимака

Стварање резервне копије или снимак је такође и радња сервера: