Sukurti DNS zonas ir tvarkyti jų įrašus. Zonas aptarnauja ns1.vps.org, ns2.vps.org ir ns3.vps.org.
Zona turi įrašus vienai domenai. Kiekvienas pakeitimas, kurį darote per API, yra nustumtas į VPS.org vardų serverius iš karto. Norėdami tarnauti domeną iš šių zonų, į savo registratūrą įdėti savo vardų serverius į ns1.vps.org, ns2.zqxqz ir ns3.zqxqz.
Pakeitimai išsaugomi ir skelbiami vienu etapu: jei vardų serveriai atsisako keisti, prašymas grąžinamas 502 ir niekas nėra išsaugotas. Srityje negali būti sukurta zona, kuriai jau priklauso kita paskyra, jos tėvai ar vaikai, arba VPS.org rezervuotas pavadinimas.
Reikalingas leidimas:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Grįžta į savo zonas, naujausias pirmas, 25 puslapyje. Įrašai nėra įtraukti; gauti juos vienoje zonoje.
| Parametras | Tipas | Privaloma | Aprašymas |
|---|---|---|---|
domain |
string | Nr. | Grąžinti tik zoną tiksliai šiuo domeno vardu |
page |
integer | Nr. | Puslapio numeris, prasidedantis nuo 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
}
]
}
| Laukas | Tipas | Aprašymas |
|---|---|---|
uuid |
string | Zona |
domain |
string | Domeno vardas, saugomas mažosiomis raidėmis |
created_at |
datetime | Sukūrimo laikas (ISO 8601, UTC) |
record_count |
integer | Įrašų skaičius zonoje, įskaitant tris NS įrašus |
| 200 | Sėkmė |
| 403 | Trūksta arba netinkamas API žetonas, arba žetonas neturi reikiamo leidimo |
Sukuria zoną ir ją paskelbia. Ši zona prasideda trimis NS įrašais, skirtais ns1, ns2 ir ns3.vps.org, kurie yra sistemos įrašai ir negali būti redaguojami ar ištrinami.
| Parametras | Tipas | Privaloma | Aprašymas |
|---|---|---|---|
domain |
string | Taip | Domeno vardas, pvz.,.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 | Sukurta zona |
| 400 | Trūkstamas arba netinkamas domeno vardas |
Grįžta į vieną zoną su visais jos įrašais įrašų masyve. Atsakas turi tą pačią formą kaip ir atsakas sukurti aukščiau.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Sėkmė |
| 404 | Nerasta, arba ji priklauso kitai paskyrai |
Pašalina zoną iš visų trijų vardų serverių, patikrina, ar nė vienas iš jų vis dar jai nepatarnauja, ir tada ištrina zoną bei jos įrašus. Jei vardų serveris vis dar atsako į zonos klausimus, prašymas nepavyksta ir zona yra išsaugota, kad galėtumėte pamėginti dar kartą.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Išbraukta. Atsakymas neturi organizmo. |
| 400 | Zone vis dar tarnauja vardų serveris. Ši zona nebuvo ištrinta; detaliame lauke nurodytos klaidos. |
| 404 | Nerasta, arba ji priklauso kitai paskyrai |
GET grąžina kiekvieną įrašą zonoje kaip paprastą masyvą (nepažintą), rūšiuotą pagal tipą ir pavadinimą. Post pridėsite įrašą į zoną ir ją paskelbkite.
| Parametras | Tipas | Privaloma | Aprašymas |
|---|---|---|---|
record_type |
string | Taip | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Taip | @ domenas, arba etiketė, pvz. www. Vardai saugomi mažosiomis raidėmis. |
value |
string | Taip | Įrašų duomenys, pvz., IP adresas ar kompiuterio vardas. Nereikia sekti taškinio taško ir TXT reikšmių; abu pridedami, kai įrašas skelbiamas. |
ttl |
integer | Taip | Laikas gyventi per kelias sekundes |
priority |
integer | Tik MX ir SRV | Reikalinga MX ir SRV įrašams ir ignoruojama kiekvienam kitam tipui. SRV, įdėkite svorį, prievadą ir tikslą pagal vertę. |
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"
}
| Laukas | Tipas | Aprašymas |
|---|---|---|
uuid |
string | Įrašo identifikatorius, naudojamas /api/v1/dns-registrs/todėl |
priority |
integer | null | MX ir SRV įrašų prioritetas, kitaip nulinis |
created_at |
date | Tik sukūrimo data (M-MM-DD), be laiko |
| 200 | VPT: zonos įrašai |
| 201 | Įrašas |
| 400 | Patvirtinimo klaida, pvz., nežinomas įrašo tipas, trūkstamas ttl, arba MX ar SRV įrašas be prioriteto |
| 404 | Nerasta, arba ji priklauso kitai paskyrai |
Nustumia zoną ir visus jos įrašus į vardų serverius. Įrašai pakeitimai skelbiami automatiškai, bet leidyba yra geriausia pastanga ir klaida neatlieka pradinio užklausos, todėl naudokite tai, kai pakeitimai neatrodo DNS pažintyse. Nėra užklausos įstaiga reikalinga.
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 grįžta į visų savo zonų įrašus, 25 per puslapį, užsakytas pagal domeno, tipo ir vardo. Post sukuria įrašą, kaip zonos įrašų baigtis, bet imasi į kūną kaip zona_uid.
| Parametras | Tipas | Privaloma | Aprašymas |
|---|---|---|---|
zone |
string | Nr. | Tik įrašai apie zoną su šiuo uuid |
record_type |
string | Nr. | Tik šio tipo įrašai, pvz., MX (nejautris atvejis) |
page |
integer | Nr. | Puslapio numeris, prasidedantis nuo 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: sėkmė |
| 201 | Įrašas |
| 400 | Patvirtinimo klaida, arba trūksta zonos_uid, arba ne vienos iš jūsų zonų |
GET grąžina vieną įrašą. PUT pakeičia jį ir reikia record_ type, name, Value and ttl. PATCH keičia tik atsiųstus laukus. DELETE pašalina įrašą ir grįžta 204 be jokio kūno. Pakeitimai skelbiami iš karto. NS įrašai, sukurti su zona yra sistemos įrašai: juos atnaujinant arba ištrinant grąžinami 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 arba PATCH: įrašas |
| 204 | Išbraukta. Atsakymas neturi organizmo. |
| 400 | Patvirtinimo klaida |
| 403 | Įrašas yra sistemos įrašas, arba simbolis neturi reikiamo leidimo |
| 404 | Nerasta, arba ji priklauso kitai paskyrai |
Patvirtinimo klaidos grįžta 400 su problema raktu lauko pavadinimas:
{
"priority": ["MX records require a priority value"]
}
Užklauskite VPS.org vardų serverių tiesiogiai patvirtinti pakeitimas yra gyvas prieš jūsų registratorius delegacija ar pertvarkymo talpyklos užfiksuoti:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com