VPS.org API

REST API құжаттамасы

Серверлер API

VPS серверлерін құру, тексеру, қуаттандыру, өлшемін өзгерту және өшіру. Серверлер uid арқылы анықталады.

Соңғы нүктелер 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 Гб RAM / 10 Гб
ipv4_addresses array IPv4 адресі жол түрінде. Сервер орнатылғанша, IPv4 жоқ жоспарларда бос.
ipv6_addresses array IPv6 адресі жол түрінде. Сервер орнатылатынша бос.
created_at datetime Құру уақыты (ISO 8601, UTC)
deployed boolean Провизорлық аяқтаған соң True

Жауап күйінің кодтары

200 Серверлер тізімі сәтті алынды
403 API токені жоқ немесе жарамсыз, немесе токеннің қажетті рұқсаты жоқ
ХАБАРЛАМА /api/v1/servers/

Жаңа сервер жасау

Жаңа серверді орналастыру үшін кезекке қою және оны бірден күй- жайы көрсетілген кезекпен қайтару. Жоспарлау фонында жалғасады: орналасу дұрыс болғанша күй- жайын сұрау. Сервер дайын болғанда, оның кіру мәліметтері тіркелгі иесіне эл. пошта арқылы жіберіледі.

Тіркелгіңізде төлем әдісі сақталуы керек. Тіркелгіңіздің журналына қарай, сервер құрылмас бұрын картаңызда бір аптаға дейін жоспар бағасының (кемінде 1 АҚШ доллары) уақытша алдын- ала рұқсат етуі болуы мүмкін.

Рұқсат керек: servers:create

Сұрау мәтінінің параметрлері

Параметрлер Түрі Қажетті Сипаттамасы
hostname string Иә Кемінде 3 таңба. Тек әріптер, цифрлар, қос нүктелер мен нүктелер ғана.
location_id integer Иә Locations API- дегі белсенді орынның ID- і
plan_uuid string Иә Пландар API- дегі белсенді жоспардың uuid- і
operating_system_version_uuid string Иә Операциялық жүйенің нұсқалар тізіміндегі белсенді жазудың uuid- і
ssh_key_uuids array Жоқ Серверге орнатылатын SSH Keys API- дегі SSH кілттер UUID- тері
ssh_key_ids array Жоқ SSH кілттерінде ssh_key_uuids дегенге ауысу үшін бүтін санды идентификаторлар. Егер екеуі де жіберілсе, сsh_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 Server created and queued for deployment
400 Тексеру қатесі, мысалы, белсенді емес орын, жоспар немесе операциялық жүйенің нұсқасы
402 Файлдағы төлем әдісі жоқ, төленбеген шот-фактуралар немесе картаны алдын- ала авторизациялаудан бас тарту
403 API токені жоқ немесе жарамсыз, немесе токеннің қажетті рұқсаты жоқ
429 Тіркелгіңіз сервердің құру шегіне жетті
АЛУ /api/v1/servers/{uuid}/

Сервер мәліметтерін алу

Бір сервердің орнын, жоспарын, операциялық жүйесін, 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 Locations API қайтарған мекен нысаны
plan object План объектісі, Plans 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 Табылмады, немесе басқа тіркелгіге тиесілі
АЛУ /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 An action (deploy, power, resize, restore) is queued or in progress
deploying Құру. Басқару панелінен құрылған серверлер осы күйді қолданады; API арқылы құрылған серверлер дайын болғанша кезекте қалады.
on Орындалуда
off Қуаттандыру сөндірілген
error Соңғы әрекет жаңылды. error_ description дегенді қараңыз.
suspended_payment Ақшалай есеп- қисап төленбегендіктен тоқтатылды
ХАБАРЛАМА /api/v1/servers/{uuid}/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 Иә Жылжытатын жоспардың 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 Акция жоқ немесе new_plan_uuid, дұрыс емес немесе белсенді емес жоспар, дискіде аз орын бар жоспар, немесе GPU жоспары (GPU жоспарлары API арқылы өлшемін өзгерте алмайды)
404 Табылмады, немесе басқа тіркелгіге тиесілі
409 Өлшемін өзгерту немесе сақтау орнын өзгерту әлі жүріп жатыр, немесе гипервизордың жаңа жоспарға сәйкес келетін сыйымдылығы жеткіліксіз
503 Capacity could not be checked right now. The server was not changed; retry later.
ХАБАРЛАМА /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/

Серверде команданы орындау

Серверде қоршау- орта командасын 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 мәні 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 returns one key with the fields above. DELETE removes it from your account and returns 204 with no body. Deleting a key does not remove it from servers it was already installed on. Keys cannot be edited: delete and add again.

Рұқсат керек: 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"

Сақтық көшірме және кескіндер

Сақтық көшірме не скриншот жасау да сервер әрекеті: