สร้างโซน DNS และจัดการบันทึกของมัน โซนนี้จะถูกให้บริการโดย ns1. vps.org, ns2. vps.org และ ns3. vps.org
โซน เก็บบันทึกสำหรับโดเมนหนึ่ง ทุกการเปลี่ยนแปลงที่คุณทำผ่าน API จะถูกส่งไปยังเซิร์ฟเวอร์ชื่อ VPS.org ในทันที เพื่อให้บริการโดเมนจากโซนเหล่านี้ ให้ตั้งค่าเซิร์ฟเวอร์ชื่อของมันที่สำนักงานทะเบียนของคุณเป็น ns1. vps.org, ns2. vps.org และ ns3. vps.org
การเปลี่ยนแปลงจะถูกบันทึกและเผยแพร่ในขั้นตอนเดียว: หากเซิร์ฟเวอร์ชื่อปฏิเสธการเปลี่ยนแปลง การร้องขอจะกลับมาเป็น 502 และจะไม่มีอะไรถูกบันทึก โซนจะไม่สามารถสร้างขึ้นได้สำหรับโดเมนที่บัญชีอื่นจัดการอยู่แล้ว โซนพ่อหรือลูกของบัญชีอื่น หรือชื่อที่จองไว้ VPS.org
ต้องการสิทธิ์:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
แสดงผลโซนของคุณ โดยเริ่มจากโซนใหม่ที่สุด จำนวน 25 หน้าต่อหน้า ไม่ได้รวมบันทึกไว้ที่นี่ ใช้การดึงโซนเดียวเพื่อดึงข้อมูล
| พารามิเตอร์ | พิมพ์ | ที่จำเป็น | คำอธิบาย |
|---|---|---|---|
domain |
string | ไม่มี | แสดงผลเฉพาะโซนที่มีชื่อโดเมนนี้ |
page |
integer | ไม่มี | หมายเลขหน้า เริ่มที่ 1 |
curl -X GET "https://admin.vps.org/api/v1/dns-zones/?domain=example.com" \
-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, params={"domain": "example.com"})
for zone in response.json()["results"]:
print(zone["uuid"], zone["domain"], zone["record_count"])
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/?domain=example.com', {
headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});
const data = await response.json();
console.log(data.results);
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c",
"domain": "example.com",
"created_at": "2026-09-06T03:11:48.829693Z",
"record_count": 5
}
]
}
| ช่อง | พิมพ์ | คำอธิบาย |
|---|---|---|
uuid |
string | เครื่องหมายระยะ |
domain |
string | ชื่อโดเมน, บันทึกเป็นตัวอักษรเล็ก |
created_at |
datetime | เวลาที่สร้าง (ISO 8601, UTC) |
record_count |
integer | จำนวนบันทึกในโซน รวมถึงบันทึก NS สามบันทึก |
| 200 | สำเร็จแล้ว |
| 403 | ไม่มีหรือไม่สามารถใช้ API token ได้ หรือ token นั้น ไม่มีสิทธิ์ที่จำเป็น |
สร้างโซนและเผยแพร่โซนนี้ โซนนี้เริ่มต้นด้วยรายการ NS สามรายการสำหรับ ns1, ns2 และ ns3. vps.org ซึ่งเป็นรายการระบบและไม่สามารถแก้ไขหรือลบได้
| พารามิเตอร์ | พิมพ์ | ที่จำเป็น | คำอธิบาย |
|---|---|---|---|
domain |
string | ใช่ | ชื่อโดเมน ตัวอย่างเช่น example. com |
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com"}'
{
"uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c",
"domain": "example.com",
"created_at": "2026-09-14T21:02:11.402113Z",
"records": [
{
"uuid": "1f2e3d4c-5b6a-4978-8a9b-0c1d2e3f4a5b",
"record_type": "NS",
"name": "@",
"value": "ns1.vps.org",
"ttl": 86400,
"priority": null,
"created_at": "2026-09-14"
},
...
],
"record_count": 3
}
| 201 | เขตที่สร้างขึ้น |
| 400 | ชื่อโดเมนหายไปหรือไม่ถูกต้อง |
คืนค่ากลับมาเป็นโซนหนึ่ง โดยมีรายการทั้งหมดของโซนนั้นอยู่ในแถวรายการ ค่ากลับมาจะมีรูปแบบเหมือนกับค่ากลับมาของการสร้างที่กล่าวมาข้างต้น
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | สำเร็จแล้ว |
| 404 | ไม่พบหรือว่าเป็นของบัญชีผู้ใช้อื่น |
ลบโซนออกจากเซิร์ฟเวอร์ชื่อทั้งหมด3ตัว และตรวจสอบว่าไม่มีเซิร์ฟเวอร์ชื่อใดที่ยังให้บริการโซนนี้อยู่ และลบโซนและบันทึกของมัน หากเซิร์ฟเวอร์ชื่อยังตอบสนองโซนนี้ คำขอจะล้มเหลว และโซนจะถูกเก็บไว้ เพื่อคุณจะสามารถลองใหม่ได้อีกครั้ง
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | ลบออก คำตอบไม่มีส่วนตัว |
| 400 | ยังมีชื่อเซิร์ฟเวอร์ที่ยังคงให้บริการโซนนี้อยู่ เขตนี้ไม่ได้ถูกลบออก ส่วนรายละเอียดจะแสดงรายการข้อผิดพลาด |
| 404 | ไม่พบหรือว่าเป็นของบัญชีผู้ใช้อื่น |
GET จะคืนค่าทุกรายการในโซนเป็นแถวธรรมดา (ไม่มีหน้า) เรียงลำดับตามประเภทและชื่อ POST จะเพิ่มรายการไปยังโซนและเผยแพร่มัน
| พารามิเตอร์ | พิมพ์ | ที่จำเป็น | คำอธิบาย |
|---|---|---|---|
record_type |
string | ใช่ | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | ใช่ | @ สำหรับโดเมนเอง หรือแท็ก เช่น www จะใช้ตัวอักษรตัวเล็กในการบันทึกชื่อโดเมน |
value |
string | ใช่ | ข้อมูลของบันทึก เช่น ที่อยู่ IP หรือชื่อเครื่อง ชื่อเครื่องไม่จำเป็นต้องใช้จุดท้าย และค่า TXT ไม่จำเป็นต้องใช้คำอ้างอิง ทั้งหมดนี้จะถูกเพิ่มเมื่อบันทึกถูกเผยแพร่ |
ttl |
integer | ใช่ | เวลาที่จะอยู่ในวินาที |
priority |
integer | MX และ SRV เท่านั้น | จำเป็นสำหรับบันทึก MX และ SRV และจะไม่คำนึงถึงสำหรับประเภทอื่น ๆ สำหรับ SRV ให้ใช้ค่าของ ความหนาแน่น, พอร์ต และเป้าหมาย |
curl -X POST "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"record_type": "MX", "name": "@", "value": "mail.example.com", "ttl": 3600, "priority": 10}'
import requests
zone_uuid = "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c"
url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {"record_type": "A", "name": "www", "value": "203.0.113.10", "ttl": 3600}
response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json())
{
"uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2026-09-14"
}
| ช่อง | พิมพ์ | คำอธิบาย |
|---|---|---|
uuid |
string | ตัวระบุรายการที่ใช้โดย /api/v1/dns-records/endpoints |
priority |
integer | null | ความสำคัญสำหรับบันทึก MX และ SRV หากไม่เช่นนั้น จะไม่มีค่า |
created_at |
date | วันที่สร้างเท่านั้น (Y- MM- DD) โดยไม่มีเวลา |
| 200 | GET: ข้อมูลของโซน |
| 201 | สร้างบันทึกใหม่ |
| 400 | เกิดข้อผิดพลาดในการตรวจสอบ เช่น ไม่รู้ว่าเป็นประเภทของแฟ้มหรือไม่, ขาด ttl, หรือแฟ้ม MX หรือ SRV ที่ไม่มีความสำคัญ |
| 404 | ไม่พบหรือว่าเป็นของบัญชีผู้ใช้อื่น |
ป้อนโซนและรายการทั้งหมดของมันไปยังเซิร์ฟเวอร์ชื่ออีกครั้ง การเปลี่ยนแปลงรายการจะถูกเผยแพร่อัตโนมัติ แต่การเผยแพร่เป็นความพยายามที่ดีที่สุด และความล้มเหลวจะไม่ทำให้การร้องขอต้นฉบับล้มเหลว ดังนั้นจึงใช้ตัวเลือกนี้เมื่อการเปลี่ยนแปลงไม่ปรากฏในการค้นหา DNS ไม่จำเป็นต้องใช้ส่วนร่างของคำร้องขอ
curl -X POST "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/sync/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"detail": "Zone example.com synced to PowerDNS"
}
คำสั่ง GET จะคืนผลลัพธ์เป็นรายการโซนทั้งหมดของคุณ จำนวน 25 รายการต่อหน้า โดยจัดเรียงตามโดเมน ประเภท และชื่อ POST จะสร้างรายการเหมือนกับจุดจบของรายการโซน แต่จะใช้โซนในส่วนตัวของโซนเป็น zone_ uuid
| พารามิเตอร์ | พิมพ์ | ที่จำเป็น | คำอธิบาย |
|---|---|---|---|
zone |
string | ไม่มี | แสดงแค่บันทึกของโซนที่มี uuid นี้เท่านั้น |
record_type |
string | ไม่มี | แสดงแค่บันทึกประเภทนี้เท่านั้น เช่น MX (ไม่แยกตัวอักษรใหญ่และเล็ก) |
page |
integer | ไม่มี | หมายเลขหน้า เริ่มที่ 1 |
curl -X GET "https://admin.vps.org/api/v1/dns-records/?zone=c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c&record_type=A" \
-H "Authorization: Bearer YOUR_API_TOKEN"
curl -X POST "https://admin.vps.org/api/v1/dns-records/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"zone_uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c", "record_type": "TXT", "name": "@", "value": "v=spf1 mx -all", "ttl": 3600}'
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "4b8e2c10-7d3f-4a5b-9e6c-1a2b3c4d5e6f",
"record_type": "A",
"name": "www",
"value": "203.0.113.10",
"ttl": 3600,
"priority": null,
"created_at": "2026-09-14"
}
]
}
| 200 | สำเร็จแล้ว |
| 201 | สร้างบันทึกใหม่ |
| 400 | การตรวจสอบความถูกต้องล้มเหลว หรือ zone_ uuid หายไป หรือไม่ใช่โซนของคุณ |
GET จะคืนค่ากลับมาเป็นบันทึกหนึ่งรายการ PUT จะแทนที่บันทึกและต้องการ record_ type, name, value และ ttl PATCH จะเปลี่ยนแปลงเพียงแค่ช่องที่คุณส่ง DELETE จะลบบันทึกและคืนค่ากลับมาเป็น 204 โดยไม่มีส่วนตัวของบันทึก ค่าเปลี่ยนแปลงจะถูกเผยแพร่ทันที บันทึก NS ที่สร้างขึ้นด้วยโซน เป็นบันทึกระบบ การปรับปรุงหรือลบบันทึกจะคืนค่ากลับมาเป็น 403
curl -X PATCH "https://admin.vps.org/api/v1/dns-records/4b8e2c10-7d3f-4a5b-9e6c-1a2b3c4d5e6f/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ttl": 300}'
| 200 | GET, PUT หรือ PATCH: การบันทึก |
| 204 | ลบออก คำตอบไม่มีส่วนตัว |
| 400 | ข้อผิดพลาดในการตรวจสอบ |
| 403 | รายการเป็นรายการระบบ หรือโทเค็นไม่มีสิทธิ์ที่จำเป็น |
| 404 | ไม่พบหรือว่าเป็นของบัญชีผู้ใช้อื่น |
การตรวจสอบความถูกต้องผิดพลาดจะคืนค่า 400 ด้วยปัญหาที่ถูกกำหนดโดยชื่อแถว:
{
"priority": ["MX records require a priority value"]
}
ถามเซิร์ฟเวอร์ชื่อ VPS.org โดยตรง เพื่อยืนยันการเปลี่ยนแปลงก่อนที่การส่งมอบหรือแคชของระบบจดทะเบียนจะติดตาม:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com