VPS серверингизни яратиш, текшириш, қувватлаш, ўлчамларини ўзгартириш ва ўчиришни бажаринг. Серверлар уларнинг uuid'лари билан аниқланади.
Ҳисобингиздаги серверларни қайтаради, энг янгиси биринчи бўлиб, ҳар бир саҳифада 25. Охирги марта ўчирилган серверлар киритилмайди.
Ҳужжат талаб этилади: servers:list
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
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
}
]
}
| Асосий | Turi | Тасвирлаш |
|---|---|---|
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 | Serverlar ro'yxati muvaffaqiyatli olindi |
| 403 | API токен йўқ ёки нодуруст, ёки токенда талаб қилинган рухсат йўқ |
Янги серверни жойлаш учун навбатга қўяди ва уни тезда ҳолат навбати билан қайтаради. Таъминлаш фонда давом этади: жойлаш ҳақиқатга айлангунча ҳолат охирини сўров. Сервер тайёр бўлганда, унинг кириш маълумотлари ҳисоб эгасига электрон почта орқали юборилади.
Ҳисобингизга сақланган тўлов усули керак. Ҳисобингиз тарихига қараб, сервер яратилишидан олдин картангизда бир ҳафта давомида режа нархининг (камида 1 USD) вақтинчалик олдиндан рухсат бериш тўхтатилиши мумкин.
Ҳужжат талаб этилади: servers:create
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
hostname |
string | Ha | Камида 3 та белги. Фақат ҳарфлар, рақамлар, тире ва нуқталар. |
location_id |
integer | Ha | Locations API'дан фаол жойнинг ID'си |
plan_uuid |
string | Ha | Планлар API'дан фаол режанинг uuid'и |
operating_system_version_uuid |
string | Ha | Операцион тизим версиялари рўйхатидаги фаол киритманинг uuid |
ssh_key_uuids |
array | Йўқ | Серверга ўрнатиш учун SSH қулфлар API дан SSH қулфлар UUIDлари |
ssh_key_ids |
array | Йўқ | Ssh_key_uuidsга алмаштириладиган SSH қулфларининг тўлиқ рақамли IDлари. Агар иккаласи ҳам юборилган бўлса, 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 Сервер тафсилотларини олишда кўрсатилган тўлиқ сервер объекти билан яратилган. Адреслар ва 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 тасвирчаси маркировкаси ва версиялар рўйхати бу ерда қисқартирилган.
| Асосий | Turi | Тасвирлаш |
|---|---|---|
vmid |
integer | null | Виртуал машина рақами, ўрнатиш вақтида ўрнатилган |
location |
object | 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 | Server tafsilotlari muvaffaqiyatli olindi |
| 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 |
Сўнгги ишга муваффақиятсиз якун ясалди. error_description ни кўринг. |
suspended_payment |
Ҳисоб-китоблар тўланмаганлиги сабабли тўхтатилди |
Қувват ишини навбатда қолдиради. Сервер ҳолати ишга тугагунча навбатда қолишга ўзгаради.
Ҳужжат талаб этилади: servers:power
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
action |
string | Ha |
start: қувватshutdown: грайфли тўхтатиш, меҳмон тўхтамаса, мажбурий тўхтатишrestart: қаттиқ қувватланиш цикли (тўхтатиш, кейин бошлаш)stop: Ҳозирда қайта ишга тушириш билан бир хил қувватланиш циклини бажаради. Серверни ўчириб қўйиш учун shutdown ни ишлатинг.
|
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 | Топилмади ёки бошқа ҳисобга тегишли |
Серверни бошқа фаол режага кўчиради. Янги режа ҳозирги режадан камроқ диск жойига эга бўлмаслиги керак ва илтимоснинг ўзида ўлчамларни ўзгартириш учун амалга оширилиши керак бўлган ишга оид талаб бўлиши керак. Янги режа учун гипервизор қуввати навбатга қўйилишидан олдин текширилади, шунинг учун рад этилган илтимос серверни ўзгартирмасдан қолдиради.
Сервер ўлчамларини ўзгартираётганда тўхтаб қолади ва кейин қайта ишга тушади. Агар ўлчамларни ўзгартириш муваффақиятсиз бўлса, сервер аввалги режасига қайтарилади ва ишга туширилган бўлса, қайта ишга туширилади. Диск ўсиши бекор қилинмайди.
Ҳужжат талаб этилади: servers:resize
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
action |
string | Ha | Ўлчамини ўзгартириш керак |
new_plan_uuid |
string | Ha | 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, нодуруст ёки фаол бўлмаган режа, диск жойи камроқ режа ёки 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 сервердаги ҳар бир IPv4 ва IPv6 манзилининг акси DNS хост номларини рўйхатга олади. POST уни бир манзил учун ўрнатади. Пулсиз хост номларини юбориш манзилни унинг акси DNS номларига қайта тиклайди.
Ҳужжат талаб этилади: servers:update
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
ip |
string | Ha | Бу серверга бириктирилган 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 манзили бу серверга ажратилмаган |
Сервер ичида QEMU меҳмон агенти орқали shell буйруғини бажаради ва унинг тугашига интилади. Сервер ўрнатилган ва ишлаётган бўлиши, qemu-guest-agent эса ўрнатилган ва меҳмонда ишлаётган бўлиши керак.
Ҳужжат талаб этилади: servers:exec
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
command |
string | Ha | Буйруқ сатри /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 бошлигидан кейин яна урининг. |
Серверни доимий йўқ қилиш учун навбатга қўяди. Сервер рўйхатдан дарҳол йўқолади ва қайта тикланмайди.
Ҳужжат талаб этилади: 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 қулфларини ҳисобингизда сақланг, сўнгра сервер яратилганда уларнинг uuidsларини ssh_key_uuids сифатида ўтказинг. GET сизнинг қулфларингизни рўйхатга олади (ҳар саҳифада 25); POST биртасини қўшиб қўяди.
Ҳужжат талаб этилади: ssh-keys:list (GET), ssh-keys:create (POST)
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
name |
string | Ha | Калитни таниб олиш учун ном, 100 тагача белгидан иборат |
public_key |
string | Ha | 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
}
| Асосий | Turi | Тасвирлаш |
|---|---|---|
id, uuid |
integer, string | Алоқа идентификаторлари. ssh_key_uuids ва қуйидаги URLда uuid'ни қўлланг; id ssh_key_ids'да ишлайди. |
fingerprint |
string | Алгоритм томонидан ҳисобланган қулфнинг MD5 бармоқ излари |
last_used_at |
datetime | null | Алоқа калитнинг охирги марта янги серверга ўрнатилган вақт |
| 201 | Алоқа қўшилган |
| 400 | Ном йўқ, ёки очиқ қулф тўғри 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"
Захира нусхасини ёки суратни яратиш ҳам сервер ишларидир:
POST /api/v1/servers/{uuid}/backup/: Zaxira nusxalari APIsiPOST /api/v1/servers/{uuid}/snapshot/: Snapshots API'si