VPS.org API

REST API დოკუმენტაცია

სერვერების API

Create, inspect, power, resize and delete your VPS servers. Servers are identified by their uuid.

საბოლოო წერტილები 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 Name of the location the server runs in
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 ტოკენი არ არის ან არასწორია, ან ტოკენს არ აქვს საჭირო უფლება
წერილის გაგზავნა /api/v1/servers/

ახალი სერვერის შექმნა

ახალი სერვერის განთავსების რიგი და მისი დაუყოვნებლივ დაბრუნება სტატუსის რიგის მიხედვით. მიწოდების პროცესი ფონზე გრძელდება: სტატუსის ბოლო წერტილის კითხვა, სანამ განთავსება არ დადასტურდება. როდესაც სერვერი მზად იქნება, მისი ლოგინური დეტალები ელფოსტაზე გაგზავნილი იქნება ანგარიშის მფლობელს.

თქვენი ანგარიშის გადახდის მეთოდის შენახვაა საჭირო. თქვენი ანგარიშის ისტორიის მიხედვით, სერვერის შექმნამდე თქვენს ბარათზე შეიძლება დროებითი წინასწარ ავტორიზაციის ოდენობის 1 კვირის ოდენობის თანხა (მინიმუმ 1 $) დაიგეგმოს.

საჭიროა უფლება: servers:create

მოთხოვნის სხეულის პარამეტრები

პარამეტრები ტიპი სავალდებულო აღწერა
hostname string დიახ მინიმუმ 3 სიმბოლო. მხოლოდ ასოები, ციფრები, კავშირები და წერტილები.
location_id integer დიახ აქტიური მდებარეობის ID მდებარეობების API- დან
plan_uuid string დიახ აქტიური გეგმის uuid-ი გეგმების API-დან
operating_system_version_uuid string დიახ uuid აქტიური ჩანაწერის ოპერაციული სისტემის ვერსიების სიაში
ssh_key_uuids array ნვ, ნვ ჟყმ. სერვერზე დაყენებული SSH კოდების UUID- ები SSH კოდების API- დან
ssh_key_ids array ნვ, ნვ ჟყმ. SSH გასაღების სრული ID, 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 შექმნილია სრული სერვერის ობიექტით, რომელიც აღწერილია სერვერის დეტალების მიღება- ში. მისამართები და 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 თქვენი ანგარიში სერვერის შექმნის ლიმიტს მიაღწია
მიიღეთ /api/v1/servers/{uuid}/

სერვერის დეტალების მიღება

1 სერვერის ადგილმდებარეობის, გეგმის, ოპერაციული სისტემის, IP მისამართისა და ბოლო 5 მოქმედების აღდგენა.

საჭიროა უფლება: 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 ბოლო 5 მოქმედება: id, action, action_display, description, user_email, created_at

პასუხის სტატუსის კოდები

200 სერვერის დეტალები წარმატებით მოიძიეს
404 ვერ მოიძებნა, ან სხვა ანგარიშს ეკუთვნის
მიიღეთ /api/v1/servers/{uuid}/status/

სერვერის სტატუსის მიღება

A lightweight call for polling after you create, power or resize a server.

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 An action (deploy, power, resize, restore) is queued or in progress
deploying მიმდინარეობს დაყენება. სერვერები, რომლებიც კონტროლის პანელიდან შეიქმნა, იყენებენ ამ მდგომარეობას; სერვერები, რომლებიც API- ს საშუალებით შეიქმნა, რჩებიან რიგში, სანამ მზად არ იქნებიან.
on მოქმედებს
off გამორთულია
error ბოლო მოქმედება ვერ შედგა. იხილეთ შეცდომის აღწერა.
suspended_payment Suspended because of unpaid invoices
წერილის გაგზავნა /api/v1/servers/{uuid}/power/

Control Server Power

მოქმედების რიგი. სერვერის სტატუსი მოქმედების დასრულებამდე ცვლება.

საჭიროა უფლება: servers:power

მოთხოვნის სხეულის პარამეტრები

პარამეტრები ტიპი სავალდებულო აღწერა
action string დიახ start: ჩართვა
shutdown: ლამაზი გამორთვა, იძულებითი გამორთვა თუ სტუმარი არ შეჩერდება
restart: მყარი ენერგიის ციკლი (დაწყება, შეჩერება)
stop: ამჟამად იგივე ენერგიის ციკლი ახორციელებს, როგორც გადატვირთვა. სერვერის გამორთვისთვის გამოიყენეთ shutdown.

მაგალითის მოთხოვნა

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 დიახ The uuid of the plan to move to
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 მოქმედება ან new_plan_uuid არ არის, არასწორი ან არააქტიური გეგმა, გეგმა ნაკლებ დისკზე ადგილით, ან გრაფიკული პროცესორის გეგმა (გრაფიკული პროცესორის გეგმები API-ს საშუალებით ვერ გადაკეთდება)
404 ვერ მოიძებნა, ან სხვა ანგარიშს ეკუთვნის
409 ზომის შეცვლა ან შენახვის ადგილის შეცვლა უკვე მიმდინარეობს, ან ჰიპერვიზორი არ არის საკმარისად ძლიერი ახალი გეგმის შესასრულებლად
503 მოცულობა ამჟამად ვერ შემოწმდა. სერვერი არ შეცვლილა; სცადეთ მოგვიანებით.
წერილის გაგზავნა /api/v1/servers/{uuid}/reset-password/

root პაროლის დაბრუნება

ახალი 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 ვერ მოიძებნა, ან სხვა ანგარიშს ეკუთვნის
მიიღეთ წერილის გაგზავნა /api/v1/servers/{uuid}/rdns/

უკუგდებადი DNS (PTR)

GET ხსნის ყველა IPv4 და IPv6 მისამართის უკუკავშირის DNS ჰოსტის სახელს სერვერზე. POST ადგენს მას ერთ მისამართზე. ცარიელი ჰოსტის სახელის გაგზავნა უკან აბრუნებს მისამართს მის ნაგულისხმევ უკუკავშირის DNS სახელზე.

საჭიროა უფლება: servers:update

მოთხოვნის სხეულის პარამეტრები (POST)

პარამეტრები ტიპი სავალდებულო აღწერა
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"
}

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 მისამართი არ მიენიჭა ამ სერვერს
წერილის გაგზავნა /api/v1/servers/{uuid}/exec/

Run a Command on a Server

QEMU- ს სტუმრის აგენტის საშუალებით სერვერში ჩასმული Shell ბრძანების შესრულება და მისი დასრულების მოლოდინი. სერვერი უნდა იყოს განთავსებული და მოქმედებაში, ხოლო 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-ს პარამეტრს null დაარქმევენ.

პასუხის სტატუსის კოდები

200 ბრძანება დასრულდა ან დრო ამოიწურა
400 სერვერი არ არის განთავსებული ან არ მუშაობს, ან არასწორი პარამეტრები
409 QEMU სტუმრის აგენტი სერვერზე არ მუშაობს
503 კავშირის დროებითი პრობლემა. კვლავ სცადეთ Retry- After თავსართის შემდეგ.
წაშლა /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 გასაღები

SSH საჯარო გასაღების შენახვა თქვენს ანგარიშში, შემდეგ მათი uuids-ის გადაცემა როგორც ssh_key_uuids სერვერის შექმნისას. GET ხსნის თქვენს გასაღებს (25 გვერდზე); POST მატებს ერთს.

საჭიროა უფლება: ssh-keys:list (GET), ssh-keys:create (POST)

მოთხოვნის სხეულის პარამეტრები (POST)

პარამეტრები ტიპი სავალდებულო აღწერა
name string დიახ სახელი, რომლის მიხედვითაც გასაღები იცნობს, 100 სიმბოლომდე
public_key string დიახ საჯარო გასაღები OpenSSH ფორმატში, მაგალითად id_ed25519.pub-ის შინაარსი

მაგალითის მოთხოვნა

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-ში და ქვემოთ მითითებულ URL-ში; id მუშაობს ssh_key_ids-ში.
fingerprint string MD5 ღილაკის ანაბეჭდი, პლატფორმის მიერ გამოთვლილი
last_used_at datetime | null ბოლოს როდის დაყენდა გასაღები ახალ სერვერზე

პასუხის სტატუსის კოდები

201 კოდი დაემატა
400 სახელი არ არის, ან საჯარო გასაღები არასწორი SSH საჯარო გასაღებია
მიიღეთ წაშლა /api/v1/ssh-keys/{uuid}/

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"

Backups and Snapshots

სარეზერვო ასლის ან სურათის შექმნა ასევე სერვერის მოქმედებაა: