Crea zone DNS e gestisci i so record. Zone sò serviti da ns1.vps.org, ns2.vps.org e ns3.vps.org.
Una zona cuntene i registri per un duminiu. Ogni cambiamentu chì fate attraversu l'API hè spintu immediatamente à i nomi di i servitori VPS.org. Per servì un duminiu da sti zone, impostate i so nomi di i servitori in u vostru registratore à ns1.vps.org, ns2.vps.org e ns3.vps.org.
Li canciamentu sunnu salvati e pubbricati in un passu: si li sirvizzi di nomi rifiutanu un canciu, la dumanda riturna 502 e nun si salva nudda. Una zona nun si po criari pi un duminiu chi un altru contu gestisci gia, pi na zona parinte o figliola di n'autru contu, o pi un nomu riggistratu VPS.org.
Permessi richiesti:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Ritorna li zoni, 25 pi pagina, cchiù recenti prima. Li rigistrazzioni nun sunnu inclusi chistu, pi chistu pigghia una zona sula.
| Parametri | Tipu | Obbligatoriu | Descrizzioni |
|---|---|---|---|
domain |
string | No | Ritorna sulu a zona cu esattamenti stu nomu di duminiu |
page |
integer | No | U numaru di pagina, a cuminciari di 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
}
]
}
| Campu | Tipu | Descrizzioni |
|---|---|---|
uuid |
string | Identificaturi di zona |
domain |
string | Nome di duminiu, mantinutu in minusculi |
created_at |
datetime | Ora di criazzioni (ISO 8601, UTC) |
record_count |
integer | Nùmmaru di riggistrazzioni ntâ zona, ntra li quali li tri riggistrazzioni NS |
| 200 | Successu |
| 403 | Token API mancante o nun validu, o u token nun havi li permessi richiesti |
Cria na zona e la pubblica. La zona accumincia cu tri rigistrazzioni NS pi ns1, ns2 e ns3.vps.org, ca sunnu rigistrazzioni di sistema e nun ponnu èssiri canciati o canciati.
| Parametri | Tipu | Obbligatoriu | Descrizzioni |
|---|---|---|---|
domain |
string | Iè | U nomu di duminiu, pi esempiu 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 | Zona criata |
| 400 | U nomu di duminiu manca o ùn hè micca validu |
Ritorna una zona cu tutti i so record in un array di record. A risposta hà a stissa forma di la risposta di creazione supra.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Successu |
| 404 | Non truvatu, o appartiene a un altru contu |
Rimuvi la zona di tutti e tri li sirvizzi di nomi, verifica ca nuddu di iḍḍi la servi ancora, e poi cancia la zona e li so rigistrazzioni. Si un sirvizziu di nomi rispunni ancora â zona, la dumanda fallisci e la zona si mantini pi putiri ripruvari.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Canciatu. A risposta nun havi corpu. |
| 400 | Un sirvizziu di nomi servi ancora a zona. A zona nun fu canciata; u campu di dittagghi elenca l'erruri. |
| 404 | Non truvatu, o appartiene a un altru contu |
GET riturna ogni record ntâ zona comu na matrici (non paginizzata), ordinata pi tipu e nomu. POST agghiunci un record â zona e lu pubbrica.
| Parametri | Tipu | Obbligatoriu | Descrizzioni |
|---|---|---|---|
record_type |
string | Iè | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Iè | @ pi lu duminiu stissu, o n' etichetta comu www. I nomi sunnu sarbati in minusculi. |
value |
string | Iè | Li dati di u record, pi esempiu un indirizzu IP o un nomu di òspite. Li nomi di òspiti nun hannu bisognu di un puntu finali e li valuri TXT nun hannu bisognu di virgolette; tutti dui sunnu agghiunti quannu u record è pubblicatu. |
ttl |
integer | Iè | Tempu di vita in sicondi |
priority |
integer | Solu MX e SRV | Richiesta pi li record MX e SRV e ignorata pi tutti l'autri tipi. Pi SRV, mettiti u pesu, u portu e u scopu ntô valuri. |
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"
}
| Campu | Tipu | Descrizzioni |
|---|---|---|
uuid |
string | L'identificativu dû record, usatu dî punti finali di /api/v1/dns-records/ |
priority |
integer | null | Priorità pi li rigistrazzioni MX e SRV, altrimenti null |
created_at |
date | Sulu a data di criazzioni (A-MM-DD), senza ora |
| 200 | GET: i rigistrazzioni di a zona |
| 201 | POST: record creatu |
| 400 | Errori di validità, pi esempiu un tipu di record sconosciutu, un ttl mancante, o un record MX o SRV senza priorità |
| 404 | Non truvatu, o appartiene a un altru contu |
Rispinci la zona e tutti li so rigistrazzioni a li sirvizzi di nomi. Li canci di rigistrazzioni sunnu pubblicati automaticamenti, ma la pubblicazzioni è lu megghiu sforzu e un fallimentu nun fa falliri la richiesta originali, adunca usalu quannu un canciu nun appare ntâ ricerca DNS. Nudda richiesta di corpu è necessaria.
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 ritorna i record di tutte e zone, 25 per pagina, ordinati per duminiu, tipu e nome. POST crea un record cum'è u puntu finale di i registri di zona, ma piglia a zona in u corpu cum'è zone_uuid.
| Parametri | Tipu | Obbligatoriu | Descrizzioni |
|---|---|---|---|
zone |
string | No | sulu li rigistrazzioni dâ zona cu stu uuid |
record_type |
string | No | Sulu i record di stu tipu, pi esempiu MX (senza distinzioni ntra maiusculi e minusculi) |
page |
integer | No | U numaru di pagina, a cuminciari di 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 | Successu |
| 201 | POST: record creatu |
| 400 | Errori di validazzioni, o zone_uuid manca o ùn hè micca una di li zoni |
GET riturna un record. PUT lu rimpiazza e ci vole record_type, name, value e ttl. PATCH cancia sulu li campi ca mandate. DELETE liscia u record e riturna 204 senza corpu. I canciamentu sunnu pubblicati immediatamenti. I record NS criati cu la zona sunnu record di sistema: l'aggiornamentu o a cancellazione li riturna 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 o PATCH: u record |
| 204 | Canciatu. A risposta nun havi corpu. |
| 400 | Validazione |
| 403 | U record è un record di sistema, o u token nun àvi li permessi richiesti |
| 404 | Non truvatu, o appartiene a un altru contu |
Errori di validità riturnà 400 cu lu problema chiudata da u nomu di u campu:
{
"priority": ["MX records require a priority value"]
}
Interroga i nomi VPS.org direttamente per cunfirmà un cambiamentu prima di a vostra delegazione di registratore o cache di risolvente:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com