VPS.org API

Dokumentácia REST API

API na správu DNS

Vytvorenie zón DNS a správa ich záznamov.Zóny sú obsluhované ns1.vps.org, ns2.vps.org a ns3.vps.org.

Koncové body 13
Základná cesta /api/v1/dns-zones, /api/v1/dns-records

Prehľad

Zóna obsahuje záznamy pre jednu doménu. Každá zmena, ktorú vykonáte prostredníctvom rozhrania API, sa okamžite odošle na názvové servery VPS.org. Ak chcete doménu obsluhovať z týchto zón, nastavte jej názvové servery u svojho registrátora na hodnoty ns1.vps.org, ns2.vps.org a ns3.vps.org.

Zmeny sa ukladajú a publikujú v jednom kroku. Ak názvové servery zmenu odmietnu, žiadosť vráti chybu 502 a nič sa neuloží. Zónu nie je možné vytvoriť pre doménu, ktorú už spravuje iné konto, pre nadradenú alebo podriadenú zónu iného konta alebo pre vyhradený názov VPS.org.

Požadované povolenie: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

ZÍSKAŤ /api/v1/dns-zones/

Zoznam všetkých DNS zón

Vráti vaše zóny, najnovšie prvé, 25 na stránku. Záznamy tu nie sú zahrnuté; na ich získanie načítajte jednu zónu.

Parametre dopytu

Parameter Typ Povinné Opis
domain string Nie Vráti len zónu s presne týmto názvom domény
page integer Nie Číslo strany začínajúce na 1

Príklad žiadosti

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

Príklad odpovede

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

Polia odpovede

Pole Typ Opis
uuid string Identifikátor zóny
domain string Názov domény, uložený malými písmenami
created_at datetime Čas vytvorenia (ISO 8601, UTC)
record_count integer Počet záznamov v zóne vrátane troch záznamov NS

Kódy stavu odpovede

200 Úspech
403 Chýbajúci alebo neplatný token API alebo token nemá požadované povolenie
POST /api/v1/dns-zones/

Vytvorenie DNS zóny

Zóna začína tromi záznamami NS pre názvy ns1, ns2 a ns3.vps.org, ktoré sú systémové záznamy a nie je možné ich upravovať ani odstraňovať.

Parametre tela požiadavky

Parameter Typ Povinné Opis
domain string Áno Názov domény, napríklad 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"}'

Príklad odpovede

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

Kódy stavu odpovede

201 Zóna vytvorená
400 Chýbajúci alebo neplatný názov domény
ZÍSKAŤ /api/v1/dns-zones/{uuid}/

Získať podrobnosti o zóne DNS

Vráti jednu zónu so všetkými jej záznamami v poli záznamov.Odpoveď má rovnaký tvar ako odpoveď create vyššie.

curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Kódy stavu odpovede

200 Úspech
404 Nenájdené, alebo patrí k inému účtu
ODSTRÁNIŤ /api/v1/dns-zones/{uuid}/

Odstránenie zóny DNS

Odstráni zónu zo všetkých troch názvových serverov, skontroluje, či ju ešte nikto neposkytuje, a potom odstráni zónu a jej záznamy.Ak názvový server stále odpovedá na zónu, žiadosť zlyhá a zóna sa ponechá, aby ste ju mohli opätovne vyskúšať.

curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Kódy stavu odpovede

204 Odstránené. Odpoveď nemá telo.
400 Zóna nebola odstránená, v poli podrobností sú uvedené chyby.The zone was not deleted; the detail field lists the errors.
404 Nenájdené, alebo patrí k inému účtu
ZÍSKAŤ POST /api/v1/dns-zones/{uuid}/records/

Zoznam alebo Pridanie záznamov v zóne

GET vráti každý záznam v zóne ako obyčajné pole (nie stránkované), zoradené podľa typu a názvu POST pridá záznam do zóny a publikuje ho.

Parametre tela požiadavky (POST)

Parameter Typ Povinné Opis
record_type string Áno A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Áno @ pre samotnú doménu alebo označenie, ako je www. Názvy sú uložené malými písmenami.
value string Áno Údaje záznamu, napríklad IP adresa alebo názov hostiteľa.Hostname names do not need a final dot and TXT values do not need quotes; both are added when the record is published.
ttl integer Áno Čas žiť v sekundách
priority integer Len MX a SRV Požadované pre MX a SRV záznamy a ignorované pre všetky ostatné typy.Pre SRV, vložte weight, port a target do hodnoty.

Príklad žiadosti

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

Príklad odpovede

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

Polia odpovede

Pole Typ Opis
uuid string Identifikátor záznamu, používaný koncovými bodmi /api/v1/dns-records/
priority integer | null Priorita pre MX a SRV záznamy, inak null
created_at date Iba dátum vytvorenia (R-MM-DD), bez času

Kódy stavu odpovede

200 GET: záznamy zóny
201 POST: vytvorený záznam
400 Chyba overenia, napríklad neznámy typ záznamu, chýbajúci záznam TTL alebo záznam MX alebo SRV bez priority
404 Nenájdené, alebo patrí k inému účtu
POST /api/v1/dns-zones/{uuid}/sync/

Znovu publikovať zónu

Opätovne odošle zónu a všetky jej záznamy na názvové servery. Zmeny záznamov sa publikovajú automaticky, ale publikovanie je najlepšie úsilie a zlyhanie nezlyhá pôvodnú požiadavku, takže použite túto možnosť, keď sa zmena nezobrazí vo vyhľadávaní DNS. Nie je potrebné telo žiadosti.

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"
}
ZÍSKAŤ POST /api/v1/dns-records/

Zoznam alebo vytvorenie záznamov v zónach

GET vráti záznamy všetkých zón, 25 na stránku, zoradené podľa domény, typu a názvu.POST vytvorí záznam ako koncový bod záznamov zóny, ale zónu v tele vezme ako zone_uuid.

Parametre dopytu

Parameter Typ Povinné Opis
zone string Nie Iba záznamy zóny s týmto uuid
record_type string Nie Iba záznamy tohto typu, napríklad MX (nerozlišuje veľké a malé písmená)
page integer Nie Číslo strany začínajúce na 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"
    }
  ]
}

Kódy stavu odpovede

200 GET: úspech
201 POST: vytvorený záznam
400 Chyba overenia, chýba zone_uuid alebo nie je to jedna z vašich zón
ZÍSKAŤ PUT PATCH ODSTRÁNIŤ /api/v1/dns-records/{uuid}/

Získanie, aktualizácia alebo odstránenie záznamu

GET vráti jeden záznam. PUT ho nahradí a potrebuje record_type, name, value a ttl. PATCH zmení len polia, ktoré odošlete. DELETE odstráni záznam a vráti 204 bez tela. Zmeny sú publikované ihneď. NS záznamy vytvorené so zónou sú systémové záznamy: aktualizácia alebo ich odstránenie vráti 403.

Keď PATCH prioritu MX alebo SRV záznamu, odoslať record_type v rovnakej žiadosti.PATCH telo s prioritou, ale bez record_type vymaže prioritu.
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}'

Kódy stavu odpovede

200 GET, PUT alebo PATCH: záznam
204 Odstránené. Odpoveď nemá telo.
400 Chyba validácie
403 Záznam je systémový záznam alebo token nemá požadované povolenie
404 Nenájdené, alebo patrí k inému účtu

Manipulácia s chybami

Chyby overenia vrátia 400 s problémom kľúčovým podľa názvu poľa:

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

Testovanie zmien DNS

Priamo sa opýtajte názvových serverov VPS.org, aby ste potvrdili, že zmena je aktívna predtým, ako sa vyrovnávacie pamäte delegovania registrátora alebo riešiteľa dobehnú:

dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com