VPS.org API

Документация

Серверлердин API'си

VPS серверлерин түзүү, текшерүү, кубаттатуу, өлчөмүн өзгөртүү жана өчүрүү. Серверлер 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 Сервер иштей турган жайдын аты
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/

Жаңы сервер түзүү

Развертывание нового сервера в очередь и немедленно возвращает его со статусной очередью. Провизия продолжается в фоновом режиме: состояние конечного пункта проверяется до тех пор, пока не будет установлен статус true. Когда сервер готов, его входные данные отправляются по электронной почте владельцу учетной записи.

Аккаунтка төлөм ыкмасын сактоо зарыл. Аккаунттун тарыхына жараша, сервер түзүлгөндөн мурун картаңызга бир жумага чейинки убакытка пландын баасын (кеминде 1 доллар) төлөөгө уруксат берүү үчүн убактылуу чек коюлушу мүмкүн.

Укуктар керек: servers:create

Сурамдын негизги параметрлери

Параметрлер Түрү Талап кылынат Сүрөт
hostname string Ооба Эң аз дегенде 3 символ. Текст, цифра, тире жана пунктуация гана.
location_id integer Ооба Locations API'ден активдүү жайгашкан жердин идентификатору
plan_uuid string Ооба Пландар API'ден активдүү пландын uuid
operating_system_version_uuid string Ооба The uuid of an active entry in an operating system's versions list
ssh_key_uuids array Жок Серверге орнотула турган SSH ключдер API'ден алынган SSH ключдеринин UUID'лери
ssh_key_ids array Жок SSH ключей целые идентификаторы, альтернатива ssh_key_uuids. Если оба ключа отправлены, то используется ssh_key_ids.
ssh_key_uuid, ssh_key_id string, integer Жок Бир SSH ачкычы үчүн кыскартма
auth_method string Жок пароль, ssh_ключ или оба. По умолчанию пароль или оба, если предоставлены 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}/

Сервердин чоо-жайын алыңыз

Бир серверди анын жайгашкан жери, планы, операциялык тутуму, 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 Location object, as returned by Locations API
plan object План объекти, Plans API кайтаргандай
operating_system, operating_system_version object Операциялык система жана орнотулган версия, Operating Systems 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 Бир иш (жарыялоо, кубаттоо, өлчөмүн өзгөртүү, калыбына келтирүү) кезекте же жүрүп жатат
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 Жөндөмдүүлүктү текшерүү мүмкүн эмес. Сервер өзгөртүлбөдү, кийинки жолу аракет кылыңыз.
ПОСТ /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 мейман агенти аркылуу 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"

Резервдик көчүрмөлөр жана сүрөттөр

Сактоо көчүрмөсүн же сүрөттү жаратуу да сервердин иши: