VPS.org API

เอกสาร REST 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 / หน่วยความจำ2GB / 10 GB
ipv4_addresses array ที่อยู่ IPv4 เป็นข้อความ ว่างจนกว่าจะมีการจัดตั้งเซิร์ฟเวอร์ และในแผนที่ไม่มี IPv4
ipv6_addresses array ที่อยู่ IPv6 ในรูปแบบข้อความ ว่างจนกว่าจะมีการจัดตั้งเซิร์ฟเวอร์
created_at datetime เวลาที่สร้าง (ISO 8601, UTC)
deployed boolean ถูกต้องเมื่อการจัดสรรเสร็จสิ้นแล้ว

รหัสสถานะการตอบกลับ

200 ดึงรายการเซิร์ฟเวอร์สำเร็จแล้ว
403 ไม่มีหรือไม่สามารถใช้ API token ได้ หรือ token นั้น ไม่มีสิทธิ์ที่จำเป็น
ข้อความ /api/v1/servers/

สร้างเซิร์ฟเวอร์ใหม่

ตั้งค่าให้เซิร์ฟเวอร์ใหม่เป็นคิวสำหรับการจัดส่ง และส่งกลับมาพร้อมกับสถานะคิวทันที การจัดส่งจะยังคงดำเนินต่อไปในภายหลัง: ถามสถานะจุดจบจนกว่าจะจัดส่งเป็นจริง เมื่อเซิร์ฟเวอร์พร้อมแล้ว รายละเอียดการล็อกอินจะถูกส่งไปยังเจ้าของบัญชีผู้ใช้ด้วยอีเมล

บัญชีของคุณต้องมีวิธีการชำระเงินที่บันทึกไว้ ขึ้นอยู่กับประวัติบัญชีของคุณ อาจมีการกักเงินก่อนอนุญาตชั่วคราว ประมาณหนึ่งสัปดาห์ ของราคาแพ็คเกจ (อย่างน้อย 1 เหรียญสหรัฐ) บนบัตรของคุณ ก่อนที่เซิร์ฟเวอร์จะถูกสร้าง

ต้องการสิทธิ์: servers:create

พารามิเตอร์เนื้อหาคำขอ

พารามิเตอร์ พิมพ์ ที่จำเป็น คำอธิบาย
hostname string ใช่ ใช้ได้กับตัวอักษรอย่างน้อย3ตัว ใช้ได้กับตัวอักษร, ตัวเลข, เครื่องหมายสั้นๆ และจุดเท่านั้น
location_id integer ใช่ หมายเลขของตำแหน่งที่ใช้งานอยู่จาก API สถานที่
plan_uuid string ใช่ uuid ของแผนการที่ทำงานอยู่ จาก API แผนการ
operating_system_version_uuid string ใช่ uuid ของรายการที่ใช้งานอยู่ในรายการรุ่นของระบบปฏิบัติการ
ssh_key_uuids array ไม่มี UUID ของกุญแจ SSH จาก API ของกุญแจ SSH ที่ต้องติดตั้งบนเซิร์ฟเวอร์
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 token ได้ หรือ token นั้น ไม่มีสิทธิ์ที่จำเป็น
429 บัญชีผู้ใช้ของคุณถึงจำนวนที่จำกัดในการสร้างเซิร์ฟเวอร์
รับ /api/v1/servers/{uuid}/

ดูรายละเอียดเซิร์ฟเวอร์

คืนค่ากลับมาเป็น เซิร์ฟเวอร์ ด้วยตำแหน่ง แพลน ระบบปฏิบัติการ หมายเลข IP และกิจกรรมล่าสุด5รายการ

ต้องการสิทธิ์: 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 การกระทำล่าสุดสูงสุด5ครั้ง: 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 ไม่สามารถตรวจสอบความจุได้ในขณะนี้ เซิร์ฟเวอร์ไม่ได้ถูกเปลี่ยนแปลง โปรดลองใหม่อีกครั้งในภายหลัง
ข้อความ /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 ใช่ เรียกใช้คำสั่งด้วย /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"

การบันทึกข้อมูลและภาพถ่าย

การสร้างแฟ้มสำรองข้อมูลหรือภาพถ่ายเป็นสิ่งที่ทำของเซิร์ฟเวอร์ด้วย: