Opret DNS zoner og administrere deres optegnelser. Zoner serveres af ns1.vps.org, ns2.vps.org og ns3.vps.org.
En zone indeholder optegnelser for et domæne. Hver ændring du foretager gennem API skubbes til VPS.org navneservere med det samme. For at tjene et domæne fra disse zoner, indstille dens navneservere på din registrator til ns1.vps.org, ns2.vps.org og ns3.vps.org.
Ændringer gemmes og offentliggøres i ét trin: Hvis navneserveren afviser en ændring, returnerer anmodningen 502 og intet gemmes. En zone kan ikke oprettes for et domæne en anden konto allerede forvalter, en forælder eller barn af en anden kontos zone, eller et VPS.org reserveret navn.
Krævet tilladelse:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Returnerer dine zoner, nyeste første, 25 pr side. Records er ikke inkluderet her; hent en enkelt zone for at få dem.
| Parameter | Type | Påkrævet | Description |
|---|---|---|---|
domain |
string | No | Returner kun zonen med præcis dette domænenavn |
page |
integer | No | Sidenummer, begyndende kl. 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
}
]
}
| Felt | Type | Description |
|---|---|---|
uuid |
string | Områdeidentifikator |
domain |
string | Domænenavn, gemt i små bogstaver |
created_at |
datetime | Skabelsestid (ISO 8601, UTC) |
record_count |
integer | Antal registreringer i zonen, herunder de tre NS-registreringer |
| 200 | Succes |
| 403 | Manglende eller ugyldig API token, eller den token mangler den krævede tilladelse |
Opretter en zone og udgiver den. Zonen starter med tre NS-poster for ns1, ns2 og ns3.vps.org, som er systemposter og ikke kan redigeres eller slettes.
| Parameter | Type | Påkrævet | Description |
|---|---|---|---|
domain |
string | Ja | Domænenavnet, for eksempel.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 | Område oprettet |
| 400 | Manglende eller ugyldigt domænenavn |
Returnerer en zone med alle sine optegnelser i et register array. Svaret har samme form som den skabe respons ovenfor.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Succes |
| 404 | Ikke fundet, eller det tilhører en anden konto |
Fjerner zonen fra alle tre navneservere, kontrollerer, at ingen af dem stadig tjener den, og sletter derefter zonen og dens optegnelser. Hvis en navneserver stadig svarer for zonen, fejler anmodningen, og zonen holdes, så du kan prøve igen.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Deleted. The response has no body. |
| 400 | En navneserver tjener stadig zonen. Zonen blev ikke slettet; detaljefeltet viser fejlene. |
| 404 | Ikke fundet, eller det tilhører en anden konto |
GET returnerer hver post i zonen som et almindeligt array (ikke pagineret), sorteret efter type og navn. POST tilføjer en rekord til zonen og udgiver den.
| Parameter | Type | Påkrævet | Description |
|---|---|---|---|
record_type |
string | Ja | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Ja | @ for selve domænet, eller en etiket som www. Navne er gemt i små bogstaver. |
value |
string | Ja | De registrerede data, for eksempel en IP- adresse eller et værtsnavn. Hostnames behøver ikke en efterfølgende prik og TXT værdier behøver ikke citater; begge tilføjes, når posten er offentliggjort. |
ttl |
integer | Ja | Tid til at leve i sekunder |
priority |
integer | Kun MX og SRV | Kræves til MX og SRV poster og ignoreres for alle andre typer. For SRV, sætte vægt, port og mål i værdi. |
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"
}
| Felt | Type | Description |
|---|---|---|
uuid |
string | Record-identifikator, der anvendes af /api/v1/dns-records/-endpoints |
priority |
integer | null | Prioritet for MX- og SRV-poster, ellers nul |
created_at |
date | Kun oprettelsesdato (Å-MM-DD), uden tid |
| 200 | GET: zonens optegnelser |
| 201 | POST: Oprettet post |
| 400 | Valideringsfejl, f.eks. en ukendt rekordtype, en manglende ttl eller en MX eller SRV-registrering uden prioritet |
| 404 | Ikke fundet, eller det tilhører en anden konto |
Skuber zonen og alle dens optegnelser til navneserveren igen. Optag ændringer offentliggøres automatisk, men udgivelse er den bedste indsats og en fejl ikke mislykkes den oprindelige anmodning, så brug dette, når en ændring ikke vises i DNS opslag. Ingen anmodning krop er nødvendig.
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 returnerer optegnelserne over alle dine zoner, 25 pr. side, bestilt efter domæne, type og navn. POST skaber en rekord som zone optegnelser endpoint, men tager zonen i kroppen som zone_uuid.
| Parameter | Type | Påkrævet | Description |
|---|---|---|---|
zone |
string | No | Kun optegnelser over zonen med denne uuid |
record_type |
string | No | Kun optegnelser af denne type, f.eks. MX (ufølsomt tilfælde) |
page |
integer | No | Sidenummer, begyndende kl. 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 | FÅ: succes |
| 201 | POST: Oprettet post |
| 400 | Valideringsfejl, eller zone_uuid mangler eller ej en af dine zoner |
GET returnerer en post. PUT erstatter den og har brug for record_ type, navn, værdi og ttl. PATCH ændrer kun de felter du sender. DELETE fjerner posten og returnerer 204 uden krop. Ændringer offentliggøres med det samme. NS- optegnelserne oprettet med zonen er systemposter: opdatering eller sletning af dem returnerer 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 eller PATCH: recorden |
| 204 | Deleted. The response has no body. |
| 400 | Valideringsfejl |
| 403 | Optegnelsen er en systemoptegnelse, eller den symbolske mangler den krævede tilladelse |
| 404 | Ikke fundet, eller det tilhører en anden konto |
Valideringsfejl returnerer 400 med problemet nøgleret ved feltnavn:
{
"priority": ["MX records require a priority value"]
}
Forespørg VPS.org navneservere direkte for at bekræfte en ændring er live, før din registrator delegation eller resolver caches indhente:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com