VPS.org API

REST API dokumentacija

DNS valdymo API

Sukurti DNS zonas ir tvarkyti jų įrašus. Zonas aptarnauja ns1.vps.org, ns2.vps.org ir ns3.vps.org.

Galutiniai taškai 13
Bazinis kelias /api/v1/dns-zones, /api/v1/dns-records

Apžvalga

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

GAUTI /api/v1/dns-zones/

Išvardinti visas DNS zonas

Grįžta į savo zonas, naujausias pirmas, 25 puslapyje. Įrašai nėra įtraukti; gauti juos vienoje zonoje.

Užklausos parametrai

Parametras Tipas Privaloma Aprašymas
domain string Nr. Grąžinti tik zoną tiksliai šiuo domeno vardu
page integer Nr. Puslapio numeris, prasidedantis nuo 1

Prašymo pavyzdys

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);

Atsakymo pavyzdys

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

Atsakymo laukai

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

Atsakymo būsenos kodai

200 Sėkmė
403 Trūksta arba netinkamas API žetonas, arba žetonas neturi reikiamo leidimo
Potvarkis /api/v1/dns-zones/

Sukurti DNS zoną

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.

Užklausos turinio parametrai

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

Atsakymo pavyzdys

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

Atsakymo būsenos kodai

201 Sukurta zona
400 Trūkstamas arba netinkamas domeno vardas
GAUTI /api/v1/dns-zones/{uuid}/

Gauti DNS zonos duomenis

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"

Atsakymo būsenos kodai

200 Sėkmė
404 Nerasta, arba ji priklauso kitai paskyrai
IŠTRINTI /api/v1/dns-zones/{uuid}/

Ištrinti DNS zoną

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"

Atsakymo būsenos kodai

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

Sąrašas arba įrašai įrašams į zoną

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.

Užklausos turinio parametrai (POST)

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ę.

Prašymo pavyzdys

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

Atsakymo pavyzdys

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

Atsakymo laukai

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

Atsakymo būsenos kodai

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

Paskelbk zoną

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"
}
GAUTI Potvarkis /api/v1/dns-records/

Sąrašas arba sukurti įrašus tarp zonų

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.

Užklausos parametrai

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

Atsakymo būsenos kodai

200 GET: sėkmė
201 Įrašas
400 Patvirtinimo klaida, arba trūksta zonos_uid, arba ne vienos iš jūsų zonų
GAUTI PUT PATCH IŠTRINTI /api/v1/dns-records/{uuid}/

Gauti, atnaujinti arba ištrinti įrašą

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.

Kai jūs PATCH MX arba SRV įrašo prioritetą, siųsti įrašo_tipas tą patį užklausą. PATCH įstaiga su prioritetu, bet be įrašo_tipas išaiškėja prioritetą.
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}'

Atsakymo būsenos kodai

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

Klaida tvarkant

Patvirtinimo klaidos grįžta 400 su problema raktu lauko pavadinimas:

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

Testuoti DNS pakeitimus

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