VPS.org API

REST API dokumentasyon

DNS Pamamahala API

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.

Mga Endpoint 13
Landas ng Batayan /api/v1/dns-zones, /api/v1/dns-records

Pangkalahatang-ideya

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:*

KUMUHA /api/v1/dns-zones/

Ilista ang Lahat ng DNS Zones

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.

Mga Parameter ng Query

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

Halimbawang Kahilingan

cURL
Python
JavaScript
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);

Halimbawang Tugon

{
  "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
    }
  ]
}

Mga Patlang ng Tugon

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

Mga Kodigo ng Katayuan ng Tugon

200 Tagumpay
403 Walang o hindi wastong API token, o ang token ay kulang ang kinakailangang pahintulot
Post /api/v1/dns-zones/

Mag-set up ng DNS Zone

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.

Humiling ng mga Parameter ng Katawan

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"}'

Halimbawang Tugon

{
  "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
}

Mga Kodigo ng Katayuan ng Tugon

201 Zone nilikha
400 Walang o hindi wastong pangalan ng domain
KUMUHA /api/v1/dns-zones/{uuid}/

Kumuha ng DNS Zone Detalye

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"

Mga Kodigo ng Katayuan ng Tugon

200 Tagumpay
404 Hindi natagpuan, o ito ay pag-aari ng iba pang account
TANGGALIN /api/v1/dns-zones/{uuid}/

I-delete ang DNS Zone

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"

Mga Kodigo ng Katayuan ng Tugon

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
KUMUHA Post /api/v1/dns-zones/{uuid}/records/

Listahan o Magdagdag ng mga tala sa isang Zone

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.

Humiling ng mga Parameter ng Katawan (POST)

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.

Halimbawang Kahilingan

cURL
Python
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())

Halimbawang Tugon

{
  "uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
  "record_type": "MX",
  "name": "@",
  "value": "mail.example.com",
  "ttl": 3600,
  "priority": 10,
  "created_at": "2026-09-14"
}

Mga Patlang ng Tugon

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

Mga Kodigo ng Katayuan ng Tugon

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
Post /api/v1/dns-zones/{uuid}/sync/

I-publish muli ang isang Zone

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"
}
KUMUHA Post /api/v1/dns-records/

Listahan o Lumikha ng mga talaan sa buong Zones

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.

Mga Parameter ng Query

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"
    }
  ]
}

Mga Kodigo ng Katayuan ng Tugon

200 Tag: tagumpay
201 POST: record nilikha
400 Validation error, o zone_uuid ay nawawala o hindi isa sa iyong mga zone
KUMUHA PUT PATCH TANGGALIN /api/v1/dns-records/{uuid}/

Kumuha, I-update o tanggalin ang isang Record

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.

Kapag PATCH mo ang prayoridad ng isang MX o SRV record, magpadala record_type sa parehong kahilingan. Ang isang PATCH katawan na may prayoridad ngunit walang record_type clears ang prayoridad.
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}'

Mga Kodigo ng Katayuan ng Tugon

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

Error Handling

Validasyon error bumalik 400 sa problema keyed sa pamamagitan ng pangalan ng patlang:

{
  "priority": ["MX records require a priority value"]
}

Pagsubok ng mga pagbabago sa DNS

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