Lumikha ng mga zone DNS at pamahalaan ang kanilang mga talaan. Zones ay hinahain sa pamamagitan ng ns1.vps.org, ns2.vps.org at ns3.vps.org.
Ang bawat pagbabago na iyong ginagawa sa pamamagitan ng API ay pinindot sa VPS.org nameservers agad. Upang maghatid ng isang domain mula sa mga zone na ito, itakda ang mga nameservers sa iyong registrar sa ns1.vps.org, ns2.vps.org at ns3.vps.org.
Ang mga pagbabago ay nai-save at nai-publish sa isang hakbang: kung ang nameservers tanggihan ang isang pagbabago, ang kahilingan ay bumalik 502 at walang nai-save. Ang isang zone ay hindi maaaring nilikha para sa isang domain ng isa pang account na pinamamahalaan, isang magulang o anak ng ibang account zone, o isang VPS.org na-reserve pangalan.
Kailangang pahintulot:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Bumalik ang iyong mga zone, pinakabagong unang, 25 bawat pahina. Mga talaan ay hindi kasama dito; fetch ng isang solong zone upang makakuha ng mga ito.
| Parameter | Uri | Kinakailangan | Paglalarawan |
|---|---|---|---|
domain |
string | Hindi | Bumalik lamang ang zone na may eksaktong ito pangalan ng domain |
page |
integer | Hindi | Page number, nagsisimula sa 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
}
]
}
| Patlang | Uri | Paglalarawan |
|---|---|---|
uuid |
string | Zone identifier |
domain |
string | Domain pangalan, naka-imbak sa maliit na titik |
created_at |
datetime | Oras ng paglikha (ISO 8601, UTC) |
record_count |
integer | Bilang ng mga talaan sa zone, kabilang ang tatlong NS talaan |
| 200 | Tagumpay |
| 403 | Walang o hindi wastong API token, o ang token ay kulang ang kinakailangang pahintulot |
Ang zone ay nagsisimula sa tatlong NS tala para sa ns1, ns2 at ns3.vps.org, na kung saan ay mga tala ng sistema at hindi maaaring i-edit o tanggalin.
| Parameter | Uri | Kinakailangan | Paglalarawan |
|---|---|---|---|
domain |
string | Oo | Ang pangalan ng domain, halimbawa 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 | Zone nilikha |
| 400 | Walang o hindi wastong pangalan ng domain |
Bumalik ng isang zone na may lahat ng mga talaan nito sa isang talaan array. Ang tugon ay may parehong hugis bilang ang lumikha ng tugon sa itaas.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Tagumpay |
| 404 | Hindi natagpuan, o ito ay pag-aari ng iba pang account |
Alisin ang zone mula sa lahat ng tatlong nameservers, checks na wala sa kanila ay pa rin nagsilbi ito, at pagkatapos ay tinanggal ang zone at ang mga talaan nito. Kung ang isang nameserver pa rin ang tugon para sa zone, ang kahilingan ay nabigo at ang zone ay pinatili kaya maaari mong subukan muli.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Natanggal. Ang tugon ay walang katawan. |
| 400 | Ang zone ay hindi tinanggal; ang detalye ng patlang ay naglalaman ng mga listahan ng mga error. |
| 404 | Hindi natagpuan, o ito ay pag-aari ng iba pang account |
GET ay nagbabalik ng bawat record sa zone bilang isang simpleng array (hindi paginated), na-sort sa pamamagitan ng uri at pangalan. POST ay nagdaragdag ng isang record sa zone at nai-publish ito.
| Parameter | Uri | Kinakailangan | Paglalarawan |
|---|---|---|---|
record_type |
string | Oo | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Oo | Ang @ ay para sa domain mismo, o isang label tulad ng www. Ang mga pangalan ay naka-imbak sa maliit na titik. |
value |
string | Oo | Ang record data, halimbawa ng isang IP address o isang hostname. Hostnames hindi kailangan ng isang nagtatapos dot at TXT halaga ay hindi kailangan quotes; parehong ay idinagdag kapag ang record ay nai-publish. |
ttl |
integer | Oo | Oras upang mabuhay sa mga segundo |
priority |
integer | MX at SRV lamang | Kailangan para sa MX at SRV record at hindi pinapansin para sa bawat iba pang uri. Para sa SRV, ilagay timbang, port at target sa halaga. |
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"
}
| Patlang | Uri | Paglalarawan |
|---|---|---|
uuid |
string | Record identifier, ginagamit ng /api/v1/dns-record / endpoints |
priority |
integer | null | Prioridad para sa MX at SRV talaan, kung hindi man null |
created_at |
date | Ang petsa ng paglikha lamang (Y-MM-DD), nang walang oras |
| 200 | GET: ang mga talaan ng zone |
| 201 | POST: record nilikha |
| 400 | Validity error, halimbawa ng isang hindi kilalang uri ng record, isang nawawalang ttl, o isang MX o SRV record na walang prayoridad |
| 404 | Hindi natagpuan, o ito ay pag-aari ng iba pang account |
Pushes ang zone at ang lahat ng mga talaan nito sa nameservers muli. Record pagbabago ay nai-publish na awtomatikong, ngunit publishing ay pinakamahusay na pagsisikap at isang pagkabigo ay hindi nabigo ang orihinal na kahilingan, kaya gamitin ito kapag ang isang pagbabago ay hindi lumabas sa DNS lookups. Walang katawan ng kahilingan ay kinakailangan.
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 ay nagbabalik ng mga talaan ng lahat ng iyong mga zone, 25 bawat pahina, iniutos sa pamamagitan ng domain, uri at pangalan. POST ay lumilikha ng isang talaan tulad ng mga talaan zone endpoint, ngunit tumatagal ng zone sa katawan bilang zone_uuid.
| Parameter | Uri | Kinakailangan | Paglalarawan |
|---|---|---|---|
zone |
string | Hindi | Lamang ang mga talaan ng zone na ito uuid |
record_type |
string | Hindi | Lamang mga talaan ng uri na ito, halimbawa MX (case insensitive) |
page |
integer | Hindi | Page number, nagsisimula sa 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 | Tag: tagumpay |
| 201 | POST: record nilikha |
| 400 | Validation error, o zone_uuid ay nawawala o hindi isa sa iyong mga zone |
PUT ay nagpapalit ito at kailangan record_type, pangalan, halaga at ttl. PATCH ay nagbabago lamang ang mga patlang na iyong ipinadala. DELETE ay nag-aalis ng record at returns 204 na walang katawan. Ang mga pagbabago ay nai-publish agad. Ang NS talaan na nilikha sa zone ay sistema ng talaan: pag-update o pagtanggal ng mga ito ay nagbabalik 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, Ilagay o patch: ang talaan |
| 204 | Natanggal. Ang tugon ay walang katawan. |
| 400 | Validasyon error |
| 403 | Ang record ay isang sistema ng rekord, o ang token ay kulang ang kinakailangang pahintulot |
| 404 | Hindi natagpuan, o ito ay pag-aari ng iba pang account |
Validasyon error bumalik 400 sa problema keyed sa pamamagitan ng pangalan ng patlang:
{
"priority": ["MX records require a priority value"]
}
Mag-query ang VPS.org nameservers direkta upang kumpirmahin ang isang pagbabago ay live bago ang iyong registrar delegasyon o resolver caches catch up:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com