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 /2GB RAM / 10 GB
ipv4_addresses array អាសយដ្ឋាន IPv4 ជា​ខ្សែអក្សរ ។ ទទេ រហូត​ដល់​ម៉ាស៊ីន​បម្រើ​ត្រូវ​បាន​បញ្ជូន និង​លើ​ផែនការ​ដែល​គ្មាន IPv4 ។
ipv6_addresses array អាសយដ្ឋាន IPv6 ជា​ខ្សែអក្សរ ។ ទទេ រហូត​ដល់​ម៉ាស៊ីន​បម្រើ​ត្រូវ​បាន​ដាក់​ឲ្យ​ប្រើ ។
created_at datetime ពេលវេលា​បង្កើត (ISO 8601 ពេលវេលា​សហគមន៍​អន្តរជាតិ)
deployed boolean ពិត​នៅពេល​ដែល​ការ​ផ្ដល់​បាន​បញ្ចប់

លេខកូដស្ថានភាពឆ្លើយតប

200 បានទាញយកបញ្ជីម៉ាស៊ីនមេដោយជោគជ័យ
403 បាត់ ឬ​មិន​ត្រឹមត្រូវ API token ឬ​ token ខ្វះ​សិទ្ធិ​ដែល​ត្រូវការ
ផ្ញើ​សារ /api/v1/servers/

បង្កើតម៉ាស៊ីនបម្រើថ្មី

ដាក់​ម៉ាស៊ីន​បម្រើ​ថ្មី​ជា​ជួរ​សម្រាប់​ការ​បែងចែក និង​ត្រឡប់​វា​ភ្លាមៗ​ជាមួយ​ជួរ​ស្ថានភាព ។ ការ​ផ្ដល់​បន្ត​នៅ​ក្នុង​ផ្ទៃ​ខាងក្រោយ ៖ សំណួរ​ចំណុច​បញ្ចប់​ស្ថានភាព​រហូត​ដល់​ការ​បែងចែក​គឺ​ពិត ។ ពេល​ម៉ាស៊ីន​បម្រើ​រួចរាល់ សេចក្ដី​លម្អិត​ការ​ចូល​របស់​វា​ត្រូវ​បាន​ផ្ញើ​អ៊ីមែល​ទៅ​ម្ចាស់​គណនី ។

គណនីរបស់អ្នកត្រូវការវិធីសាស្រ្តទូទាត់ដែលបានរក្សាទុក។ អាស្រ័យលើប្រវត្តិគណនីរបស់អ្នកការរក្សាទុកមុនការអនុញ្ញាតជាបណ្តោះអាសន្ននៃតម្លៃផែនការមួយសប្តាហ៍ (យ៉ាងហោចណាស់ 1 ដុល្លារអាមេរិក) អាចត្រូវបានដាក់នៅលើកាតរបស់អ្នកមុនពេលម៉ាស៊ីនបម្រើត្រូវបានបង្កើត។

សិទ្ធិ​ដែល​ត្រូវការ: servers:create

ស្នើសុំប៉ារ៉ាម៉ែត្រតួ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
hostname string បាទ/ចាស៎ យ៉ាងហោចណាស់ ៣ តួអក្សរ ។ មាន​តែ​អក្សរ លេខ សញ្ញា​ក្បៀស និង​សញ្ញា​ចុច​ប៉ុណ្ណោះ ។
location_id integer បាទ/ចាស៎ លេខ​សម្គាល់​នៃ​ទីតាំង​សកម្ម​ពី​ទីតាំង API
plan_uuid string បាទ/ចាស៎ uuid របស់​ផែនការ​សកម្ម​ពី API ផែនការ
operating_system_version_uuid string បាទ/ចាស៎ uuid របស់​ធាតុ​សកម្ម​ក្នុង​បញ្ជី​កំណែ​របស់​ប្រព័ន្ធ​ប្រតិបត្តិការ
ssh_key_uuids array គ្មាន UUIDs នៃ​កូនសោ SSH ពី​កូនសោ SSH API ដើម្បី​ដំឡើង​លើ​ម៉ាស៊ីន​បម្រើ
ssh_key_ids array គ្មាន លេខ​សម្គាល់​ចំនួន​គត់​របស់​កូនសោ SSH ជា​ជម្រើស​សម្រាប់ 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 token ឬ​ token ខ្វះ​សិទ្ធិ​ដែល​ត្រូវការ
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 វត្ថុ​ទីតាំង​ដែល​បាន​ត្រឡប់​ដោយ​ទីតាំង API
plan object វត្ថុ​ផែនការ​ដូច​ដែល​បាន​ត្រឡប់​ដោយ API ផែនការ
operating_system, operating_system_version object ប្រព័ន្ធ​ប្រតិបត្តិការ និង​កំណែ​ដែល​បាន​ដំឡើង ដូច​ដែល​បាន​ត្រឡប់​ដោយ​ប្រព័ន្ធ​ប្រតិបត្តិការ API
ipv4_addresses, ipv6_addresses array វត្ថុ​មួយ​ក្នុង​មួយ​អាសយដ្ឋាន​ជាមួយ ip ច្រកចេញចូល បណ្តាញ​រង និង rdns (ឈ្មោះ​ម៉ាស៊ីន DNS បញ្ច្រាស)
recent_actions array សកម្មភាព​ចុងក្រោយ​បំផុត​ចំនួន​ប្រាំ ៖ លេខ​សម្គាល់ សកម្មភាព action_ display សេចក្ដី​ពិពណ៌នា 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: បច្ចុប្បន្ន​ធ្វើ​វដ្ត​ថាមពល​ដូច​គ្នា​ដូច​ការ​ចាប់ផ្ដើម​ឡើង​វិញ ។ ប្រើ​បិទ ដើម្បី​ទុក​ម៉ាស៊ីន​បម្រើ​បិទ ។

សំណើឧទាហរណ៍

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/

ប្ដូរ​ទំហំ​ម៉ាស៊ីន​បម្រើ

ផ្លាស់ទី​ម៉ាស៊ីន​បម្រើ​ទៅ​ផែនការ​សកម្ម​ផ្សេង​ទៀត ។ ផែនការ​ថ្មី​មិន​អាច​មាន​ទំហំ​ថាស​តិច​ជាង​បច្ចុប្បន្ន​ទេ ហើយ​តួ​សំណើ​ត្រូវ​តែ​រួម​បញ្ចូល​សកម្មភាព​ដែល​បាន​កំណត់​ដើម្បី​ប្ដូរ​ទំហំ ។ សមត្ថភាព Hypervisor សម្រាប់​ផែនការ​ថ្មី​ត្រូវ​បាន​ពិនិត្យ​មុន​ពេល​អ្វី​មួយ​ត្រូវ​បាន​ដាក់​ជា​ជួរ ដូច្នេះ​សំណើ​ដែល​បាន​បដិសេធ​ទុក​ម៉ាស៊ីន​បម្រើ​មិន​ផ្លាស់ប្ដូរ ។

ម៉ាស៊ីន​បម្រើ​ត្រូវ​បាន​បិទ ខណៈ​ពេល​វា​ត្រូវ​បាន​ប្ដូរ​ទំហំ និង​ចាប់ផ្ដើម​ម្ដង​ទៀត​បន្ទាប់​ពី​នោះ ។ ប្រសិន​បើ​ការ​ប្ដូរ​ទំហំ​បរាជ័យ ម៉ាស៊ីន​បម្រើ​ត្រូវ​បាន​ដាក់​ត្រឡប់​ទៅ​ផែនការ​មុន​របស់​វា ហើយ​ចាប់ផ្ដើម​ម្ដង​ទៀត ប្រសិន​បើ​វា​កំពុង​រត់ ។ ការ​រីក​ធំ​របស់​ថាស​មិន​អាច​មិន​ធ្វើ​វិញ​បាន​ទេ ។

សិទ្ធិ​ដែល​ត្រូវការ: 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 ការ​ផ្លាស់ប្ដូរ​ទំហំ ឬ​ការ​ផ្ទុក​កំពុង​តែ​ដំណើរការ​រួច​ហើយ ឬ​គ្មាន​សមត្ថភាព hypervisor គ្រប់គ្រាន់​សម្រាប់​ផែនការ​ថ្មី​ទេ
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 រាយ​ឈ្មោះ​ម៉ាស៊ីន DNS ត្រឡប់​នៃ IPv4 និង IPv6 អាសយដ្ឋាន​ទាំងអស់​លើ​ម៉ាស៊ីន​បម្រើ ។ 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 បាទ/ចាស៎ Command line run with /bin/sh -c, up to 2000 characters
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
}

ប្រសិន​បើ​ពាក្យ​បញ្ជា​នៅ​តែ​រត់​ពេល​អស់​ពេល ការ​ឆ្លើយតប​បាន​កំណត់ 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 បាទ/ចាស៎ ឈ្មោះ​ដែល​ត្រូវ​ស្គាល់​កូនសោ​ដោយ រហូត​ដល់ ១០០ តួអក្សរ
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_ id ។
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"

បម្រុងទុក និង​រូបថត​បន្ទាន់

ការ​បង្កើត​បម្រុង​ទុក ឬ​រូបថត​ក៏​ជា​សកម្មភាព​ម៉ាស៊ីន​បម្រើ​ដែរ ៖