DNS- zonen aanmaken en hun records beheren. Zones worden bediend door ns1. vps.org, ns2. vps.org en ns3. vps.org.
In soan hat de records foar ien domein. Elke feroaring dy jo meitsje fia de API wurdt direkt nei de VPS.org nammetsjinners pushed. Om in domein fan dizze soan te tsjinjen, set de nammetsjinners by jo register yn op ns1. vps.org, ns2. vps.org en ns3. vps.org.
Wizigings wurde yn ien stap bewarre en publisearre. As de nammetsjinners in wiziging ôfwize, dan jout it fersyk 502 werom en wurdt neat bewarre. Der kin gjin zone oanmakke wurde foar in domein dat al beheard wurdt troch in oar akkount, in boppe- of ûnderlizzende zone fan in oar akkount, of in reservearre VPS.org- namme.
Tagongsrjochten fereaske:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Jout jo gebieten werom, de lêste earst, 25 per side. Rekords binne hjir net ynbegrepen; helje in ienfâldige gebieten om se te krijen.
| Parameters | Type | Ferplicht | Beskriuwing |
|---|---|---|---|
domain |
string | Net | Allinne de zone mei dizze domeinnamme weromjaan |
page |
integer | Net | Sidenûmer, begjint by 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
}
]
}
| Fjild | Type | Beskriuwing |
|---|---|---|
uuid |
string | Zone- identifier |
domain |
string | Domeinnamme, yn lytse letters bewarre |
created_at |
datetime | Oanmaktiid (ISO 8601, UTC) |
record_count |
integer | Oantal records yn de soane, ynklusyf de trije NS- records |
| 200 | Suksesfol |
| 403 | Untbrekkend of ûnjildich API-token, of it token hat net de fereaske tagongsrjochten |
Makket in zone oan en publisearret dy. De zone begjint mei trije NS- records foar ns1, ns2 en ns3. vps.org, dy' t systeemrecords binne en net bewurke of wiske wurde kinne.
| Parameters | Type | Ferplicht | Beskriuwing |
|---|---|---|---|
domain |
string | Ja | De domeinnamme, bygelyks 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 created |
| 400 | Unjildige domeinnamme |
Jout in zone werom mei alle records yn in records- array. It antwurd hat deselde foarm as it oanmeitsje- antwurd hjirboppe.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Suksesfol |
| 404 | Net fûn, of it heart by in oar akkount |
Ferwiist de zone fan alle trije nammetsjinners, kontrolearret of gjin ien der noch tsjinnet, en wisket dan de zone en syn records. As in nammetsjinner noch antwurdet foar de zone, dan mislearre it fersyk en wurdt de zone bewarre sadat jo it opnij besykje kinne.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Wiske. It antwurd hat gjin haadtekst. |
| 400 | In nammetsjinner tsjinnet de zone noch. De zone is net wiske; it detailfjild lit de flaters sjen. |
| 404 | Net fûn, of it heart by in oar akkount |
GET jout alle records yn de soane werom as in gewoane array (net paginated), sortearre op type en namme. POST foeget in record ta oan de soane en publisearret it.
| Parameters | Type | Ferplicht | Beskriuwing |
|---|---|---|---|
record_type |
string | Ja | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Ja | @ foar it domein sels, of in label lykas www. Nammen wurde bewarre yn lytse letters. |
value |
string | Ja | De gegevens fan de rekord, bygelyks in IP- adres of in hostnamme. Hostnammen hawwe gjin punt nedich en TXT- wearden hawwe gjin oanhelle tekens nedich. Beide wurde tafoege as de rekord publisearre wurdt. |
ttl |
integer | Ja | Tiid om te libjen yn sekonden |
priority |
integer | Allinne MX en SRV | Fergees foar MX en SRV records en negearre foar alle oare soarten. Foar SRV, set gewicht, poarte en doel yn de wearde. |
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"
}
| Fjild | Type | Beskriuwing |
|---|---|---|
uuid |
string | Record-identifikaasje, brûkt troch de einpunten fan /api/v1/dns-records/ |
priority |
integer | null | Prioriteit foar MX en SRV records, oars nul |
created_at |
date | Allinne oanmakke datum (J- MM- DD), sûnder tiid |
| 200 | GET: de records fan de zone |
| 201 | POST: record oanmakke |
| 400 | Ferifikaasjeflater, bygelyks in ûnbekend rekordtype, in ûntbrekkend ttl, of in MX- of SRV- rekord sûnder prioriteit |
| 404 | Net fûn, of it heart by in oar akkount |
Stjoert de zone en alle records opnij nei de nammetsjinners. Recordwizigingen wurde automatysk publisearre, mar it publisearjen is de bêste opsje en in flater makket it oarspronklike fersyk net mislearre. Brûk dit dus as in wiziging net yn DNS- opsyk ferskynt. Gjin fersyklichem nedich.
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 jout de records fan alle zones werom, 25 per side, oardere op domein, type en namme. POST makket in record oan lykas it einpunt fan de zone records, mar nimt de zone yn it lichem as zone_ uuid.
| Parameters | Type | Ferplicht | Beskriuwing |
|---|---|---|---|
zone |
string | Net | Allinne records fan de sône mei dizze uuid |
record_type |
string | Net | Allinne records fan dit type, bygelyks MX (hoeflettergefoelige) |
page |
integer | Net | Sidenûmer, begjint by 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 | GET: sukses |
| 201 | POST: record oanmakke |
| 400 | Validaasjeflater, of zone_ uuid ûntbrekt of is net ien fan jo zonen |
GET jout ien rekord werom. PUT ferfangt it en hat record_ type, namme, wearde en ttl nedich. PATCH feroaret allinne de fjilden dy jo ferstjoere. DELETE ferwiist de rekord en jout 204 werom sûnder de koptekst. Wizigings wurde direkt publisearre. De NS- records dy mei de sône oanmakke binne systeemrecords: bywurkjen of wiskje jout 403 werom.
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 of PATCH: it rekord |
| 204 | Wiske. It antwurd hat gjin haadtekst. |
| 400 | Ferifikaasjeflater |
| 403 | De rekord is in systeemrecord, of it token hat net de fereaske tagongsrjochten |
| 404 | Net fûn, of it heart by in oar akkount |
Jildichheidsflaters jouwe 400 werom mei it probleem ynskeakele troch fjildnamme:
{
"priority": ["MX records require a priority value"]
}
De VPS.org- nammetsjinners direkt ûnderfregje om te befêstigjen dat in feroaring live is foardat jo registerdelegaasje of resolúsje- caches ynhelle wurde:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com