VPS.org API

เอกสาร REST API

API การจัดการ DNS

จัดการโซนและระเบียน DNS สำหรับโดเมนของคุณโดยใช้โปรแกรม

จุดสิ้นสุด 4 จุดสิ้นสุด
เส้นทางฐาน /api/v1/dns-zones
การตรวจสอบสิทธิ์ ต้องการตัวแทนผู้ถือ

ภาพรวม

ส่วน API ของ DNS นั้น ช่วยจัดการโซนและบันทึกของ DNS ได้อย่างเต็มที่ ทุกโซนจะถูกโฮสต์บนเซิร์ฟเวอร์ชื่อที่ได้รับอนุญาตของ VPS.org ด้วยการสร้างและจัดวางแฟ้มโซน BIND9 แบบอัตโนมัติ

ระบบเซิร์ฟเวอร์ชื่อ

ตัวเลือกหลัก

การตรวจสอบสิทธิ์

การร้องขอ API DNS ทั้งหมด ต้องการการตรวจสอบสิทธิ์ด้วยโทเค็นผู้ถือ สร้างโทเค็น API จากแผงควบคุมบัญชีของคุณที่ /account/developers/ ด้วยสิทธิ์ดังต่อไปนี้:

ตัวอย่าง

Authorization: Bearer vps_abc123def456...
สำคัญ: โต๊กเกอร์ API จะถูกแสดงเพียงครั้งเดียวในระหว่างการสร้าง เก็บไว้อย่างปลอดภัย หากคุณทำโต๊กเกอร์หาย คุณจะต้องสร้างใหม่
รับ /api/v1/dns-zones/

แสดงรายการโซน DNS ทั้งหมด

เรียกรายการโซน DNS ทั้งหมดที่ผู้ใช้ที่ตรวจสอบสิทธิ์เป็นเจ้าของ รองรับการกรองตามชื่อโดเมน

พารามิเตอร์การค้นหา

พารามิเตอร์ พิมพ์ ที่จำเป็น คำอธิบาย
domain string ไม่มี Filter zones by exact domain name (e.g., example.com)

ตัวอย่างคำขอ

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  headers: {'Authorization': 'Bearer YOUR_API_TOKEN'}
});

const zones = await response.json();
console.log(zones);

ตัวอย่างคำตอบ

[
  {
    "uuid": "abc123-def456-ghi789",
    "domain": "example.com",
    "created_at": "2024-01-15T10:30:00Z",
    "record_count": 12
  },
  {
    "uuid": "xyz789-uvw456-rst123",
    "domain": "myapp.io",
    "created_at": "2024-06-20T14:15:00Z",
    "record_count": 8
  }
]

ช่องตอบกลับ

ช่อง พิมพ์ คำอธิบาย
uuid string Unique zone identifier (used in API requests)
domain string Domain name for this DNS zone
created_at datetime Zone creation timestamp (ISO 8601 format)
record_count integer Total number of DNS records in this zone

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

200 Successfully retrieved DNS zones list
401 Unauthorized - Invalid or missing API token
403 Forbidden - Token lacks dns:list permission
รับ /api/v1/dns-zones/{uuid}/

ดึงข้อมูลรายละเอียดของโซน DNS

เรียกข้อมูลรายละเอียดเกี่ยวกับโซน DNS เฉพาะ รวมถึงบันทึกทั้งหมด

พารามิเตอร์เส้นทาง

พารามิเตอร์ พิมพ์ ที่จำเป็น คำอธิบาย
uuid string ใช่ Unique zone identifier

ตัวอย่างคำตอบ

{
  "uuid": "abc123-def456-ghi789",
  "domain": "example.com",
  "created_at": "2024-01-15T10:30:00Z",
  "record_count": 5,
  "records": [
    {
      "uuid": "rec-001",
      "record_type": "A",
      "name": "@",
      "value": "192.0.2.1",
      "ttl": 3600,
      "priority": null,
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "uuid": "rec-002",
      "record_type": "MX",
      "name": "@",
      "value": "mail.example.com",
      "ttl": 3600,
      "priority": 10,
      "created_at": "2024-01-15T10:32:00Z"
    }
  ]
}

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

200 Successfully retrieved zone details
404 Zone not found or not owned by user
ข้อความ /api/v1/dns-zones/

สร้างโซน DNS

สร้างโซน DNS ใหม่สำหรับโดเมน โซนนี้จะถูกจัดวางไว้บนเซิร์ฟเวอร์ชื่อ VPS.org ตัวทันที

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

พารามิเตอร์ พิมพ์ ที่จำเป็น คำอธิบาย
domain string ใช่ Domain name (e.g., example.com)

ตัวอย่างคำขอ

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "newdomain.com"}'
import requests

url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {"domain": "newdomain.com"}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({domain: 'newdomain.com'})
});

const zone = await response.json();
console.log(zone);

ตัวอย่างคำตอบ

{
  "uuid": "new-zone-uuid",
  "domain": "newdomain.com",
  "created_at": "2026-01-18T16:45:00Z",
  "record_count": 0,
  "records": []
}

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

201 DNS zone created successfully
400 Bad Request - Invalid domain name or zone already exists
403 Forbidden - Token lacks dns:create permission
ลบ /api/v1/dns-zones/{uuid}/

ลบโซน DNS

ลบโซน DNS และรายการที่เกี่ยวข้องทั้งหมดออกไปโดยสิ้นเชิง การกระทำนี้จะไม่สามารถทำซ้ำได้

พารามิเตอร์เส้นทาง

พารามิเตอร์ พิมพ์ ที่จำเป็น คำอธิบาย
uuid string ใช่ Unique zone identifier

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

204 Zone deleted successfully (no response body)
403 Forbidden - Token lacks dns:delete permission
404 Zone not found
รับ /api/v1/dns-zones/{uuid}/records/

รายการบันทึก DNS ในโซน

เรียกเอาบันทึก DNS ทั้งหมดสำหรับโซนที่กำหนดไว้ (เส้นทางที่ถูกฝังไว้)

พารามิเตอร์เส้นทาง

พารามิเตอร์ พิมพ์ ที่จำเป็น คำอธิบาย
uuid string ใช่ Zone UUID

ตัวอย่างคำขอ

curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

ตัวอย่างคำตอบ

[
  {
    "uuid": "rec-001",
    "record_type": "A",
    "name": "@",
    "value": "192.0.2.1",
    "ttl": 3600,
    "priority": null,
    "created_at": "2024-01-15T10:30:00Z"
  },
  {
    "uuid": "rec-002",
    "record_type": "MX",
    "name": "@",
    "value": "mail.example.com",
    "ttl": 3600,
    "priority": 10,
    "created_at": "2024-01-15T10:32:00Z"
  }
]
ข้อความ /api/v1/dns-zones/{uuid}/records/

สร้างบันทึก DNS ในโซน

เพิ่มรายการ DNS ใหม่ไปยังโซนที่กำหนดไว้ (เส้นทางที่ถูกฝังไว้)

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

พารามิเตอร์ พิมพ์ ที่จำเป็น คำอธิบาย
record_type string ใช่ Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string ใช่ Record name (@ for root, subdomain, or FQDN)
value string ใช่ Record value (IP address, hostname, text)
ttl integer No Time to live in seconds (default: 3600)
priority integer For MX/SRV Priority (required for MX and SRV records)

ตัวอย่างคำขอ

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
  }'
import requests

url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

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

201 DNS record created successfully
400 Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
GET PUT PATCH DELETE /api/v1/dns-records/{uuid}/

จัดการบันทึก DNS (เข้าถึงโดยตรง)

ปฏิบัติการ CRUD เต็มรูปแบบบนบันทึก DNS ส่วนบุคคล โดยใช้บันทึก UUID

ปฏิบัติการที่ใช้ได้

พารามิเตอร์การค้นหา (สำหรับ GET / api/ v1/ dns- records /)

Parameter พิมพ์ คำอธิบาย
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

ตัวอย่าง: ปรับปรุง TTL ของบันทึก

curl -X PATCH "https://admin.vps.org/api/v1/dns-records/{rec-uuid}/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": 1800}'

Supported DNS Record Types

พิมพ์ Purpose Example Value Priority Required
A Maps domain to IPv4 address 192.0.2.1 ไม่มี
AAAA Maps domain to IPv6 address 2001:0db8::1 ไม่มี
CNAME Creates alias to another domain example.com ไม่มี
MX Mail server for domain mail.example.com ใช่
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all ไม่มี
NS Nameserver delegation ns1.example.com ไม่มี
SRV Service location record 10 5060 sip.example.com ใช่
CAA Certificate authority authorization 0 issue "letsencrypt.org" ไม่มี

วิธีการที่ดีที่สุด

การปรับแต่ง TTL

รูปแบบที่ใช้กันทั่วไป

ความปลอดภัย

การจัดการข้อผิดพลาด

ข้อผิดพลาดที่พบบ่อย

รหัสสถานะ ข้อผิดพลาด ตัวแก้ปัญหา
400 ชื่อโดเมนไม่ถูกต้อง ทำให้แน่ใจว่าโดเมนใช้ตามกฎการตั้งชื่อ DNS
400 รายการ MX ต้องการความสำคัญ เพิ่ม priority ช่องสำหรับบันทึก MX และ SRV
401 ตัวแทน API ไม่ถูกต้อง รูปแบบของเครื่องหมายตรวจสอบ (ต้องเริ่มด้วย) vps_)
403 ขาดสิทธิ์ สร้างโต๊กเกอร์ใหม่ที่ต้องการ dns:* สิทธิ์
404 ไม่พบโซน/บันทึก ตรวจสอบ UUID และให้แน่ใจว่าทรัพยากรเป็นของบัญชีผู้ใช้ของคุณ

ตัวอย่างการตอบสนองข้อผิดพลาด

{
  "detail": "MX records require a priority value",
  "error_code": "validation_error",
  "field": "priority"
}

กำลังทดสอบการเปลี่ยนแปลง DNS

ตรวจสอบการกระจายข้อมูล

# Query A record
dig example.com A

# Query specific nameserver
dig @ns1.vps.org example.com

# Query MX records
dig example.com MX

# Check all records
dig example.com ANY

ใช้เครื่องมือออนไลน์