Ṣẹ̀dà àwọn ààyè DNS àti ìṣàmúlò-ètò wọn. Àwọn ààyè náà ní a tí ns1.vps.org, ns2.vps.org àti ns3.vps.org.
A zone holds the records for one domain. Every change you make through the API is pushed to the VPS.org nameservers straight away. To serve a domain from these zones, set its nameservers at your registrar to ns1.vps.org, ns2.vps.org and ns3.vps.org.
Àwọn ìyipada ní a fi pamọ́ àti àkọ́já nínú ìpele kan: tí àwọn sáà àtílẹ̀ bá dáwọ́ ìyipada náà, ìtàn náà náà 502 àti àwọn àkóónú kò ní a fi pamọ́. Kò lè ṣẹ̀dà ààyè-iṣẹ́ fún dómìnirà tí àwọn kànẹ́ẹ̀lì mìíràn tí n ṣakoso, àwọn obì tàbí ọmọ ààyè-iṣẹ́ kànẹ́ẹ̀lì mìíràn, tàbí àwọn orúkọ tí a tí fi pamọ́ VPS.org.
Àwọn ìkúndùǹ tí a fẹ́:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Fi àwọn ààyè-iṣẹ́ rẹ pamọ́, àwọn tuntun ní akọkọ, 25 nínú ojú-ìwé kan. Àwọn àkọlé kò ní àwọn àkọlé níbẹ̀; gba ààyè-iṣẹ́ kan láti gba wọn.
| Àwọn Àtòjọ-ẹ̀yàn | Irú | Ti a nilo | Àwọn Àkọlé |
|---|---|---|---|
domain |
string | _Kò | Àwọn ààyè-iṣẹ́ àwọn ààyè-iṣẹ́ |
page |
integer | _Kò | Page number, starting at 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
}
]
}
| Àwọn Ààyè-iṣẹ́ | Irú | Àwọn Àkọlé |
|---|---|---|
uuid |
string | Àtòjọ-ìṣàfilọ́lẹ̀ ààyè-iṣẹ́ |
domain |
string | Orúkọ Dómén, tí a fi pamọ́ sí àwọn àyọkà ìsàlẹ̀-ilà kékeré |
created_at |
datetime | Creation time (ISO 8601, UTC) |
record_count |
integer | Àwọn àwọn àtòjọ-ẹ̀yàn nínú ìjánu-ìṣàmúlò-ètò náà, àti àwọn àtòjọ-ẹ̀yàn NS mẹ́tà |
| 200 | Àwọn Ìṣàmúlò-ètò |
| 403 | Tokénà API tí kò bá jẹ́ tàbí tí kò bá jẹ́, tàbí tokénà náà kò ní ìṣẹ̀dà tí a fẹ́ |
Fi ààyè kọ̀ nínú ààyè náà. Ààyè náà tí ìṣàmúlò-ètò NS mẹ́tà láti fi fún ns1, ns2 àti ns3.vps.org, tí àwọn ìṣàmúlò-ètò sítàmúlò-ètò àti àwọn ààyè tí a kò lè yipada tàbí pa.
| Àwọn Àtòjọ-ẹ̀yàn | Irú | Ti a nilo | Àwọn Àkọlé |
|---|---|---|---|
domain |
string | Bẹ́ẹ̀ni | Orúkọ́ dómén, àwọn ààtò àtòjọ-ẹ̀yàn.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 | Àwọn ààyè-iṣẹ́ àìṣàmúlò-ètò |
| 400 | Àwọn àwọn àmì-ìwé àìdálẹ̀ |
Fi ààyè kan pàtó nípa àwọn àtòjọ-ẹ̀yàn rẹ̀ nínú àwọn àtòjọ-ẹ̀yàn àwọn àtòjọ-ẹ̀yàn. Àwọn ìṣàfarawé ní ìṣàfarawé tí a tì kọ̀ ní àwọn ìṣàfarawé ìṣàfarawé àwọn àtòjọ-ẹ̀yàn àwọn àtòjọ-ẹ̀yàn.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Àwọn Ìṣàmúlò-ètò |
| 404 | Kò rí, tàbí ò jẹ́ àwọn |
Ṣàfikún ààyè-iṣẹ́ láti inú àwọn sáà àti àwọn ààyè-iṣẹ́ àti àwọn àkọsílẹ̀ rẹ̀. Tó bá jẹ́ pé sáà àti ààyè-iṣẹ́ kan kò bá dáju ààyè-iṣẹ́ náà, ìtàn náà náà tí ìpàdé láti inú ààyè-iṣẹ́ náà.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Paṣẹ. Àwọn ìsàlẹ̀-ilà kò ní ẹ̀yàn. |
| 400 | Àwọn ààtò àtòjọ-ẹ̀yàn àwọn ààtò àtòjọ-ẹ̀yàn àwọn ààtò àtòjọ-ẹ̀yàn |
| 404 | Kò rí, tàbí ò jẹ́ àwọn |
GET ń pa gbogbo àkọlé nínú ìjánu-ìwé-ìṣàmúlò-ètò náà láti inú àwọn ààyè-iṣẹ́ àwọn ààyè-iṣẹ́ (kò ní pàgínà), àwọn àwọn ààyè-iṣẹ́ àti àwọn
| Àwọn Àtòjọ-ẹ̀yàn | Irú | Ti a nilo | Àwọn Àkọlé |
|---|---|---|---|
record_type |
string | Bẹ́ẹ̀ni | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Bẹ́ẹ̀ni | @ fun dóméǹ rẹ̀, tàbí àmì-ìwé bíi www. Àwọn àwọn |
value |
string | Bẹ́ẹ̀ni | Àwọn àkóónú àtòjọ-ìdáràn, bíi àdírẹ̀sì IP tàbí orukọ́ ojú-ìwé. Àwọn àtòjọ-ìwé kò ní àwọn |
ttl |
integer | Bẹ́ẹ̀ni | Àkóónú ìgbà ìrànwọ́ nínú àwọn ìsàlẹ̀-ilà |
priority |
integer | MX ati SRV nikan | Tí a fẹ̀ fún àwọn àkọlé MX àti SRV àti àwọn àwọn àkọlé tí a kò fi pamọ́ fún àwọn ìṣàmúlò-ètò àti àwọn ìṣàmúlò-ètò mìíràn. Fún SRV, fi àwọn ààyè, àwọn ìpàtì àti àwọn ààyè inú fálù náà. |
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"
}
| Àwọn Ààyè-iṣẹ́ | Irú | Àwọn Àkọlé |
|---|---|---|
uuid |
string | Àtòjọ-ìdàkọ́ àwọn àkọ́lé, tí a lò láti inú àwọn ààtò àtòjọ-ẹ̀yàn /api/v1/dns-records/ |
priority |
integer | null | Àwọn ìṣàmúlò-ètò fún àwọn àkọlé MX àti SRV, tí a kò bá jẹ́ bẹ́ẹ̀ |
created_at |
date | Àwọn àwọn àkóónú ìṣàfarawélẹ̀ (Y-MM-DD) nípa àwọn àkóónú àìṣe |
| 200 | GET: àwọn àkọlé ààyè-iṣẹ́ ìsàlẹ̀-ilà |
| 201 | Àwọn àtòjọ-ẹ̀yàn àìṣàmúlò-ètò |
| 400 | Àṣìṣe ìṣàmúlò-ètò, bíi àwọn ààtò àìṣàmúlò-ètò àìdálẹ̀ àìdálẹ̀, ttl tí kò wa, àti àtòjọ-ẹ̀yàn MX tàbí SRV tí kò ní ìjánu-ìjánu |
| 404 | Kò rí, tàbí ò jẹ́ àwọn |
Fi ààyè àti àwọn àkọ́lé rẹ̀ gbogbo lọ́wọ́lọ́wọ́ sí àwọn sáà àti àwọn ààyè àti àwọn àkọ́lé. Àwọn ìṣàmúlò-ètò àwọn àkọ́lé tí a fi kọ́ nípa ìṣàfarawé, àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò àwọn àkókò
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 yi àwọn àkọlé àwọn ààyè-iṣẹ́ rẹ pada, 25 ni ojú-ìwé kan, àwọn ààyè-iṣẹ́ àwọn dómén, irúfẹ̀ àti àwọn
| Àwọn Àtòjọ-ẹ̀yàn | Irú | Ti a nilo | Àwọn Àkọlé |
|---|---|---|---|
zone |
string | _Kò | Àwọn àtòjọ-ẹ̀yàn tí a bá jẹ́ ààyè-iṣẹ́ nípa uuid yìí |
record_type |
string | _Kò | Àwọn àtòjọ-ẹ̀yàn tí irúfẹ́ yìí níwọ̀n, àwọn àtòjọ-ẹ̀yàn MX (kò ní àwọn à |
page |
integer | _Kò | Page number, starting at 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 | Ìjánu-ìtàn |
| 201 | Àwọn àtòjọ-ẹ̀yàn àìṣàmúlò-ètò |
| 400 | Àṣìṣe ìṣàfarawé ìṣàmúlò-ètò, tàbí àwọn ààyè-iṣẹ́_uuid tí kò wà tàbí kò jẹ́ àwọn ààyè-iṣẹ́ rẹ |
GET returns one record. PUT replaces it and needs record_type, name, value and ttl. PATCH changes only the fields you send. DELETE removes the record and returns 204 with no body. Changes are published straight away. The NS records created with the zone are system records: updating or deleting them returns 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 tabi PATCH: àkọlé |
| 204 | Paṣẹ. Àwọn ìsàlẹ̀-ilà kò ní ẹ̀yàn. |
| 400 | Àṣìṣe ìṣàfarawé ìṣàmúlò-ètò |
| 403 | Àkọ́lé ní àkọ́lé ìpéwọ̀n, tàbí àtòjọ-ẹ̀yàn kò ní ìṣẹ̀dà tí a fẹ́ |
| 404 | Kò rí, tàbí ò jẹ́ àwọn |
Àwọn àṣìṣe ìṣàfarawé ìṣàmúlò-ètò náà ń gbọ́wọ́ 400 láti inú àwọn àkóónú àwọn ààyè-iṣẹ́:
{
"priority": ["MX records require a priority value"]
}
Query the VPS.org nameservers directly to confirm a change is live before your registrar delegation or 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