VPS.org API

REST API मिसिलीकरण

सर्भर API

सिर्जना, निरीक्षण, शक्ति, रिसाइज र मेट्नुहोस् आफ्नो VPS सर्भरहरू। सर्भरहरू तिनीहरूको uuid द्वारा पहिचान गरिन्छ।

अन्तिम बिन्दुहरू 15
आधार मार्ग /api/v1/servers
प्राप्त गर्नुहोस् /api/v1/servers/

सबै सर्भरहरू सूचीबद्ध गर्नुहोस्

तपाईँको खातामा सर्भरहरू फर्काउँछ, नयाँ पहिलो, २५ प्रति पृष्ठ । सर्भरहरू मेटिएको समावेश गरिएको छैन ।

अनुमति आवश्यक: servers:list

क्वेरी प्यारामिटरहरू

परिमिति प्रकारहरू आवश्यक छ वर्णन
page integer होइन पृष्ठ नम्बर, १ बाट सुरु
page_size integer होइन प्रति पृष्ठ नतिजा (पूर्वनिर्धारित २५, अधिकतम १००)

उदाहरण अनुरोध

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 एक पटक प्रबन्धन समाप्त भएपछि ठीक

प्रतिक्रिया स्थिति कोडहरू

200 सर्भर सूची सफलतापूर्वक प्राप्त गरियो।
403 हराइरहेको वा अवैध API टोकन, वा टोकनमा आवश्यक अनुमतिको कमी
पोस्ट /api/v1/servers/

नयाँ सर्भर सिर्जना गर्नुहोस्

विकासका लागि नयाँ सर्भर लाम लगाउँछ र यसलाई वस्तुस्थिति लामसँग तत्काल फर्काउँछ । उपलब्ध गराउनु पृष्ठभूमिमा जारी रहन्छ: विकास सत्य सम्म स्थिति अन्त्य बिन्दु पोल गर्नुहोस् । सर्भर तयार हुँदा, यसको लगइन विवरण खाता मालिकलाई इमेल गरिन्छ ।

तपाईंको खाता बचत भुक्तानी विधि आवश्यक छ। आफ्नो खाता इतिहास मा निर्भर, योजना मूल्य को बारेमा एक हप्ता को एक अस्थायी पूर्व-अधिकार राख्न (कम्तीमा 1 USD) सर्भर सिर्जना गरिएको छ अघि आफ्नो कार्ड मा राखिएको हुन सक्छ।

अनुमति आवश्यक: servers:create

अनुरोध बडी प्यारामिटरहरू

परिमिति प्रकारहरू आवश्यक छ वर्णन
hostname string हो कम्तिमा ३ क्यारेक्टर । अक्षर, अङ्क, हाइफन र बिन्दु मात्र ।
location_id integer हो स्थानहरू एपीआईबाट सक्रिय स्थानको आईडी
plan_uuid string हो योजना API बाट सक्रिय योजनाको uuid
operating_system_version_uuid string हो सञ्चालन प्रणालीको संस्करण सूचीमा सक्रिय प्रविष्टिको uuid
ssh_key_uuids array होइन सर्भरमा स्थापना गर्नका लागि SSH कुञ्जी API बाट SSH कुञ्जीको UUIDs
ssh_key_ids array होइन ssh_key_uuids का लागि वैकल्पिक रूपमा, SSH कुञ्जीको इन्टिजर आईडीहरू । यदि दुवै पठाइएको छ भने, 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}/

सर्भर विवरणहरू प्राप्त गर्नुहोस्

यसको स्थान, योजना, सञ्चालन प्रणाली, आईपी ठेगाना र पाँच सबैभन्दा हालैका कार्यसँग एक सर्भर फर्काउँछ ।

अनुमति आवश्यक: 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 आईपी, गेटवे, सबनेट र RDNS (उल्टो DNS होस्टनाम) संग प्रति ठेगाना एक वस्तु
recent_actions array पाँच पछिल्लो कार्य सम्म: आईडी, कार्य, कार्य प्रदर्शन, वर्णन, प्रयोगकर्ता इमेल, सिर्जना गरिएको मिति

प्रतिक्रिया स्थिति कोडहरू

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 अन्तिम कार्य असफल भयो । त्रुटि वर्णन हेर्नुहोस् ।
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 हो यसमा सार्ने योजनाको 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"
}

रिसाइज अस्वीकार गरिएको उदाहरण (४०९):

{
  "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/

मूल पासवर्ड रिसेट गर्नुहोस्

नयाँ मूल पासवर्ड सिर्जना गर्दछ, यसलाई प्रतिक्रियामा फर्काउँछ र सर्भरमा परिवर्तन लाम लगाउँछ । नयाँ पासवर्ड तपाईँलाई इमेल पनि गरिन्छ । सर्भर तैनाथ हुनुपर्छ । अनुरोध मुख्य भाग आवश्यक छैन ।

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/

उल्टो डीएनएस (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 आईपी हराइरहेको छ, वा होस्टनाम सेट गर्न सकिँदैन
404 आईपी ठेगाना यो सर्भरमा मानाङ्कन गरिएको छैन
पोस्ट /api/v1/servers/{uuid}/exec/

सर्भरमा आदेश चलाउनुहोस्

QEMU पाहुना एजेन्ट मार्फत सर्भर भित्र शेल आदेश चलाउँछ र यसलाई समाप्त गर्न प्रतिक्षा गर्दछ । सर्भर विस्तार र चलिरहेको हुनुपर्छ, र qemu- पाहुना- एजेन्ट स्थापना र पाहुनामा चलिरहेको हुनुपर्छ ।

अनुमति आवश्यक: servers:exec

अनुरोध बडी प्यारामिटरहरू

परिमिति प्रकारहरू आवश्यक छ वर्णन
command string हो /bin/sh -c सँग आदेश लाइन चलाउनुहोस्, २००० क्यारेक्टर सम्म
timeout integer होइन आदेशका लागि प्रतिक्षा गर्ने सेकेन्ड, १ देखि ३०० (पूर्वनिर्धारित ३०)
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
}

यदि समय समाप्ति समाप्त हुँदा आदेश अझै चलिरहेको छ भने, प्रतिक्रियाले समय समाप्ति ठीक सेट गरेको छ र निस्कने सङ्केत शून्य सेट गरेको छ ।

प्रतिक्रिया स्थिति कोडहरू

200 आदेश समाप्त भयो वा समय समाप्त भयो
400 सर्भर विस्तार गरिएको छैन वा चलिरहेको छैन, वा अवैध परिमितिहरू
409 QEMU मेहमान एजेन्ट सर्भरमा चलिरहेको छैन
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 कुञ्जीहरू

तपाईँको खातामा सार्वजनिक SSH कुञ्जीहरू भण्डारण गर्नुहोस्, त्यसपछि तपाईँले सर्भर सिर्जना गर्दा ssh_key_uuids को रूपमा तिनीहरूको uuids पास गर्नुहोस् । GET ले तपाईँको कुञ्जीहरू सूचीबद्ध गर्दछ (प्रत्येक पृष्ठमा २५); POST ले एउटा थप्दछ ।

अनुमति आवश्यक: ssh-keys:list (GET), ssh-keys:create (POST)

अनुरोध बडी प्यारामिटरहरू (POST)

परिमिति प्रकारहरू आवश्यक छ वर्णन
name string हो १०० क्यारेक्टर सम्म, कुञ्जी पहिचान गर्न एउटा नाम
public_key string हो खुला SSH ढाँचामा सार्वजनिक कुञ्जी, उदाहरणका लागि 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 कुञ्जी पहिचानकर्ता । ssh_key_uuids मा uuid प्रयोग गर्नुहोस् र तलको URL मा; id ले ssh_key_ids मा काम गर्दछ ।
fingerprint string कुञ्जीको MD5 औंठाछाप, प्लेटफर्मद्वारा गणना गरिएको
last_used_at datetime | null कुञ्जी नयाँ सर्भरमा अन्तिम पटक स्थापना भएको बेला

प्रतिक्रिया स्थिति कोडहरू

201 कुञ्जी थपियो
400 हराइरहेको नाम, वा सार्वजनिक कुञ्जी वैध SSH सार्वजनिक कुञ्जी होइन
प्राप्त गर्नुहोस् मेटाउनुहोस् /api/v1/ssh-keys/{uuid}/

SSH कुञ्जी प्राप्त गर्नुहोस् वा मेट्नुहोस्

GET ले माथिको फिल्डहरूसँग एउटा कुञ्जी फर्काउँछ । DELETE ले यसलाई तपाईँको खाताबाट हटाउँछ र कुनै शरीर बिना २०४ फर्काउँछ । कुञ्जी मेट्दा सर्भरबाट यसलाई हटाउँदैन जुन यो पहिले नै स्थापना गरिएको थियो । कुञ्जीहरू सम्पादन गर्न सकिँदैन: मेट्नुहोस् र फेरि थप्नुहोस् ।

अनुमति आवश्यक: 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"

जगेडा र स्न्यापसट

जगेडा वा स्न्यापसट सिर्जना गर्नु पनि सर्भर कार्य हो: