VPS.org API

REST API dokumentacija

API za upravljanje DNS-a

Ustvarite DNS cone in upravljajte njihove zapise. Zone služijo NS1.vps.org, NS2.zq0xqz in NS3.zq0xqz.

Končne točke 13
Osnovna pot /api/v1/dns-zones, /api/v1/dns-records

Pregled

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:*

PRIDOBITE /api/v1/dns-zones/

Seznam vseh DNS con

Vrne svoja območja, najnovejše, 25 na stran. Zapisi niso vključeni tukaj; prinesi eno območje, da jih dobiš.

Parametri poizvedbe

Parameter Vrsta Zahtevano Opis
domain string Ne Vrni samo cono s točno to domeno
page integer Ne Številka strani, začetna od 1

Primer zahteve

cURL
Python
JavaScript
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);

Primer odgovora

{
  "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
    }
  ]
}

Polja za odgovor

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

Kode stanja odgovora

200 Uspeh
403 Manjkajoči ali neveljavni API žeton, ali token manjka zahtevano dovoljenje
POST /api/v1/dns-zones/

Ustvari DNS cono

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.

Zahtevajte parametre telesa

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"}'

Primer odgovora

{
  "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
}

Kode stanja odgovora

201 Ustvari cono
400 Pogrešano ali neveljavno ime domene
PRIDOBITE /api/v1/dns-zones/{uuid}/

Poišči podrobnosti DNS cone

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"

Kode stanja odgovora

200 Uspeh
404 Ni najden ali pripada drugemu računu
IZBRIŠI /api/v1/dns-zones/{uuid}/

Zbriši DNS cono

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"

Kode stanja odgovora

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
PRIDOBITE POST /api/v1/dns-zones/{uuid}/records/

Seznam ali dodaj zapise v coni

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.

Zahtevajte parametre telesa (POST)

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.

Primer zahteve

cURL
Python
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())

Primer odgovora

{
  "uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
  "record_type": "MX",
  "name": "@",
  "value": "mail.example.com",
  "ttl": 3600,
  "priority": 10,
  "created_at": "2026-09-14"
}

Polja za odgovor

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

Kode stanja odgovora

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
POST /api/v1/dns-zones/{uuid}/sync/

Objavi cono

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"
}
PRIDOBITE POST /api/v1/dns-records/

Seznam ali ustvari zapise čez cone

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.

Parametri poizvedbe

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"
    }
  ]
}

Kode stanja odgovora

200 GETS: uspeh
201 POST: zapis ustvarjen
400 Napaka pri preverjanju ali zone_uuid manjka ali ni ena od vaših območij
PRIDOBITE PUT PATCH IZBRIŠI /api/v1/dns-records/{uuid}/

Dobi, posodobi ali izbriši zapis

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.

Ko PATCH prednost zapisa MX ali SRV, pošljite zapis_tip v isti zahtevi. Telo PATCH s prednostno, vendar brez rekord_tipa očišča prednost.
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}'

Kode stanja odgovora

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

Obvladovanje napak

Napake pri preverjanju vrnejo 400 z težavo, ki je ključna za polje:

{
  "priority": ["MX records require a priority value"]
}

Preizkušanje sprememb DNS

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