Ustvarite DNS cone in upravljajte njihove zapise. Zone služijo NS1.vps.org, NS2.zq0xqz in NS3.zq0xqz.
Območje ima zapise za eno domeno. Vsako spremembo, ki jo naredite skozi API, je takoj porinjena na serverje VPS.org. Da bi služili domeni iz teh con, nastavite njegove strežnike ime na vašem registru na ns1. zqx1xz, ns2. vps.org in ns3. vps.org.
Spremembe so shranjene in objavljene v enem koraku: če strežniki imen zavrnejo spremembo, zahteva vrne 502 in nič ni shranjeno. Območja ni mogoče ustvariti za domeno, ki jo drugi račun že upravlja, staršin ali otrok drugega računa ali rezervirano ime VPS.org.
Zahtevano dovoljenje:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Vrne svoja območja, najnovejše, 25 na stran. Zapisi niso vključeni tukaj; prinesi eno območje, da jih dobiš.
| Parameter | Vrsta | Zahtevano | Opis |
|---|---|---|---|
domain |
string | Ne | Vrni samo cono s točno to domeno |
page |
integer | Ne | Številka strani, začetna od 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
}
]
}
| Polje | Vrsta | Opis |
|---|---|---|
uuid |
string | Identifikator cone |
domain |
string | Ime domene, shranjeno v majhnem polju |
created_at |
datetime | Čas ustvarjanja (ISO 8601, UTC) |
record_count |
integer | Število evidenc v območju, vključno s tremi evidencami NS |
| 200 | Uspeh |
| 403 | Manjkajoči ali neveljavni API žeton, ali token manjka zahtevano dovoljenje |
Ustvari cono in jo objavi. Območje se začne s tremi NS zapisi za ns1, ns2 in ns3.vps.org, ki so sistemske zapise in jih ni mogoče urejati ali izbrisati.
| Parameter | Vrsta | Zahtevano | Opis |
|---|---|---|---|
domain |
string | Da | Ime domene, na primer.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 | Ustvari cono |
| 400 | Pogrešano ali neveljavno ime domene |
Vrne eno območje z vsemi zapisi v nizu zapisov. Odziv ima enako obliko kot odziv na ustvaritev zgoraj.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Uspeh |
| 404 | Ni najden ali pripada drugemu računu |
Odstrani območje z vseh treh strežnikov imenov, preveri, da ga nihče od njih še vedno ne služi, nato pa izbriše območje in njegove zapise. Če strežnik imenov še vedno odgovarja za območje, zahtevek ne uspe in da je območje obdržano, da lahko ponovite.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Odziv ni zavarovan. |
| 400 | Imenski strežnik še vedno služi območju. Okolje ni bilo izbrisano; polje podrobnosti navaja napake. |
| 404 | Ni najden ali pripada drugemu računu |
GET vrne vsak zapis v coni kot navadni niz (ni paginiran), razvrščen po tipu in imenu. POST doda rekord v cono in ga objavi.
| Parameter | Vrsta | Zahtevano | Opis |
|---|---|---|---|
record_type |
string | Da | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Da | @ za samo domeno ali oznako, kot je www. Imena so shranjena v malih črkah. |
value |
string | Da | Podatki zapisa, na primer IP naslov ali ime imenišča. Ime imen ne potrebuje zasledne točke in vrednosti TXT ne potrebujejo citati; oba se dodata ob objavi zapisa. |
ttl |
integer | Da | Čas za življenje v sekundah |
priority |
integer | Samo MX in SRV | Zahtevani za zapise MX in SRV in ignorirani za vse druge vrste. Za SRV, postavite težo, pristanišče in ciljno vrednost. |
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"
}
| Polje | Vrsta | Opis |
|---|---|---|
uuid |
string | Identifikator zapisa, ki ga uporabljajo zapisi /api/v1/dns/ opazovani dogodki |
priority |
integer | null | Prednostna naloga za zapise MX in SRV, sicer nič |
created_at |
date | Samo datum ustvarjanja (L-MM-DD), brez časa |
| 200 | Povprečna številka: |
| 201 | POST: zapis ustvarjen |
| 400 | Napaka pri preverjanju, na primer neznana vrsta zapisa, manjkajoči ttl ali zapis MX ali SRV brez prednosti |
| 404 | Ni najden ali pripada drugemu računu |
Potisne cono in vse njegove zapise na serverje z imenom. Spremembe zapisa se objavijo samodejno, vendar je objava najboljša napor in neuspeh ne uspe prvotni zahtevek, zato uporabite to, ko sprememba ne pokaže v DNS iskalnikov. Telo ni potrebno.
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 vrne zapise vseh vaših con, 25 na stran, urejeno po domeni, tipu in imenu. POST ustvari rekord kot je območje zapisuje opazovani cilj, vendar zavzame območje v telesu kot cone_uuid.
| Parameter | Vrsta | Zahtevano | Opis |
|---|---|---|---|
zone |
string | Ne | Samo zapisi o območju s tem uuid |
record_type |
string | Ne | Samo zapisi te vrste, na primer MX (neobčutljivost v primeru) |
page |
integer | Ne | Številka strani, začetna od 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 | GETS: uspeh |
| 201 | POST: zapis ustvarjen |
| 400 | Napaka pri preverjanju ali zone_uuid manjka ali ni ena od vaših območij |
GET vrne en zapis. PUT ga nadomesti in potrebuje zapis_ tip, ime, vrednost in ttl. PART spremeni samo polja, ki jih pošljete. DELETE odstrani zapis in vrne 204 brez telesa. Spremembe se objavijo takoj. NS zapisi, ustvarjeni s cono so sistemske evidence: posodobitev ali izbris vrne 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 | VZET, PUT ALI PATCH: rekord |
| 204 | Odziv ni zavarovan. |
| 400 | Napaka pri potrditvi |
| 403 | Zapis je sistemski zapis ali žeton nima zahtevanega dovoljenja |
| 404 | Ni najden ali pripada drugemu računu |
Napake pri preverjanju vrnejo 400 z težavo, ki je ključna za polje:
{
"priority": ["MX records require a priority value"]
}
Poiščite ime serverje VPS.org neposredno, da potrdite spremembo je v živo, preden vas registrska delegacija ali reševalni predpomnilniki napovedujejo:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com