创建 DNS 区域和管理记录。 区域由 ns1. vps.org、 ns2. vps.org 和 ns3. vps.org 服务。
A区拥有一个域的记录。 通过 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,世界协调时) |
record_count |
integer | 临时安全区内的记录数量,包括三个NS记录 |
| 200 | 成功 |
| 403 | 遗失或无效 API 牌标牌, 或者该牌牌缺少必需的许可 |
创建并公布一个区域。区域以 Ns1、 ns2 和 ns3.vps.org 的三份NS记录开始,它们是系统记录,不能编辑或删除。
| 参数 | 类型 | 必需的 | 说明 |
|---|---|---|---|
domain |
string | 是的 | 域名, 例如. 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 | 未找到, 或属于另一个账户 |
从所有三个命名器中删除此区,检查它们中没有一个仍然使用此区,然后删除此区及其记录。如果一个命名器仍然回答此区,请求失败,保留此区,以便您重新尝试。
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 | 未找到, 或属于另一个账户 |
获得区域内的每个记录都返回平坦阵列( 不作总结), 按类型和名称分类 。 POST 添加一个记录并发布 。
| 参数 | 类型 | 必需的 | 说明 |
|---|---|---|---|
record_type |
string | 是的 | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | 是的 | @ for the round self, 或贴有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/ 终点 |
priority |
integer | null | 优先使用MX和SRV记录,否则无效 |
created_at |
date | 仅创建日期(Y-MM-MM-DD),无时间 |
| 200 | 区域记录 |
| 201 | POST: 创建记录 |
| 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"
}
获取您所有区域的记录, 每页25个, 按域名、 类型和名称排序 。 POST 创建了像区记录端点一样的记录, 但将身体中的区域作为区域区 。
| 参数 | 类型 | 必需的 | 说明 |
|---|---|---|---|
zone |
string | 否 无 | 只有带此区域的记录 |
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 | POST: 创建记录 |
| 400 | 校验错误, 或区域_ uuid 缺失或不属于您的区域之一 |
获取一个记录。 PUT 将替换它, 并需要记录类型、 名称、 值和 ttl。 匹配程序只更改您发送的字段。 DELET 将删除记录, 返回 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 | 录音记录 |
| 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