VPS.org API

REST API Documentation

DNS-i halduse API

Loo DNS tsoonid ja hallata oma arvestust. Tsoonid on serveeritud ns1.vps.org, ns2.vps.org ja ns3.vps.org.

Lõpp-punktid 13
Baasrada /api/v1/dns-zones, /api/v1/dns-records

Ülevaade

Tsoon hoiab kirjeid ühe domeeni jaoks. Iga muutus, mida sa API kaudu teed, lükatakse kohe VPS.org nimeserverite juurde. Nende tsoonide domeeni teenindamiseks määra oma nimeserverid registripidaja juures ns1. vps.org, ns2. vps.org ja ns3. vps.org.

Muudatused salvestatakse ja avaldatakse ühes etapis: kui nimeserverid keelduvad muudatusest, tagastatakse päring 502 ja midagi ei salvestata. Tsooni ei saa luua domeenile, mida mõni teine konto juba haldab, teise konto tsooni vanem või laps või VPS.org reserveeritud nimi.

Nõutav luba: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

SAA /api/v1/dns-zones/

Loetle kõik DNS-tsoonid

Tagastab oma tsoonid, uusim esimene, 25 lehe kohta. Rekordid ei ole siin; tõmba ühe tsooni, et neid saada.

Päringuparameetrid

Parameter Tüüp Nõutav Description
domain string No Tagastab ainult täpselt selle domeeninimega tsooni
page integer No Lehekülje number, alates 1

Näidistaotlus

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

Näidisvastus

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

Vastuseväljad

Väli Tüüp Description
uuid string Piirkonna tunnus
domain string Domeeni nimi, salvestatud väiketähtedena
created_at datetime Loomisaeg (ISO 8601, UTC)
record_count integer Piirkonnas registreeritud andmete arv, sealhulgas kolm NS-registrit

Vastuse olekukoodid

200 Edukas
403 Puuduv või vigane API märgis või märgil puudub nõutav luba
POST /api/v1/dns-zones/

DNS-i tsooni loomine

Loob tsooni ja avaldab selle. Tsoon algab kolme NS kirjega ns1, ns2 ja ns3. vps.org jaoks, mis on süsteemikirjed ja mida ei saa muuta ega kustutada.

Taotluse sisu parameetrid

Parameter Tüüp Nõutav Description
domain string Jah Domeeni nimi, näiteks.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"}'

Näidisvastus

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

Vastuse olekukoodid

201 Piirkond loodud
400 Puuduv või vigane domeeninimi
SAA /api/v1/dns-zones/{uuid}/

Hangi DNS Zone'i andmed

Tagastab ühe tsooni kõigi oma kirjetega kirjemassiivis. Reaktsioonil on sama kuju kui ülal oleval loo vastusel.

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

Vastuse olekukoodid

200 Edukas
404 Ei leitud või kuulub teisele kontole
KUSTUTA /api/v1/dns-zones/{uuid}/

Kustuta DNS-tsoon

Eemaldab tsooni kõigi kolme nimeserveri hulgast, kontrollib, et ükski neist seda veel ei teeninda, ning kustutab seejärel tsooni ja selle kirjed. Kui nimeserver vastab ikka veel tsoonile, ei õnnestu päringuga ja tsooni hoitakse alles, et saaksite uuesti proovida.

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

Vastuse olekukoodid

204 Vastus on kustutatud.
400 Nimeserveri teenindab tsooni. Tsooni ei kustutatud, detailväljal on vead.
404 Ei leitud või kuulub teisele kontole
SAA POST /api/v1/dns-zones/{uuid}/records/

Piirkonnas olevate kirjete loend või lisamine

SAADA tagastab kõik tsoonis olevad kirjed tavalise massiivina (mitte vormistatud), sorteeritud tüübi ja nime järgi. POSTI lisab tsooni kirje ja avaldab selle.

Taotluse sisu parameetrid (POST)

Parameter Tüüp Nõutav Description
record_type string Jah A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Jah @ domeeni enda või märgise, näiteks www. Nimed salvestatakse väiketäht.
value string Jah Kirje andmed, näiteks IP- aadress või masinanimi. Masinanimed ei vaja trailing dot' i ja TXT- i väärtused ei vaja jutumärke; mõlemad lisatakse kirje avaldamisel.
ttl integer Jah Aeg elada sekundites
priority integer Ainult MX ja SRV Nõutav MX ja SRV kirjete puhul ning ignoreeritakse igat muud tüüpi. SRV puhul märkida kaal, port ja sihtmärk väärtusena.

Näidistaotlus

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

Näidisvastus

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

Vastuseväljad

Väli Tüüp Description
uuid string Kirje tunnuskood, mida kasutab /api/v1/dns-kirjed/tulemusnäitajad
priority integer | null MX- ja SRV-andmete prioriteet, vastasel juhul null
created_at date Ainult loomise kuupäev (A-KK-PP), ajata

Vastuse olekukoodid

200 GET: tsooni andmed
201 POST: loodud kirje
400 Valideerimisviga, näiteks tundmatu kirje tüüp, puuduv ttl või MX või SRV kirje ilma prioriteedita
404 Ei leitud või kuulub teisele kontole
POST /api/v1/dns-zones/{uuid}/sync/

Tsooni uuesti avaldamine

Lükkab tsooni ja kõik selle kirjed nimeserverid uuesti. Salvesta muudatused avaldatakse automaatselt, kuid avaldamine on parim pingutus ja rike ei ebaõnnestu algse taotluse, nii et kasuta seda, kui muudatus ei ilmu DNS otsing. Ükski palve keha ei ole vaja.

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

Nimekiri või Loo kirjed üle tsoonid

SAAT tagastab andmed kõik oma tsoonid, 25 lehe kohta, tellitud domeeni, tüübi ja nime järgi. POST loob kirje nagu tsooni kirjete tulemusnäitaja, kuid võtab tsooni kehas tsoon_uud.

Päringuparameetrid

Parameter Tüüp Nõutav Description
zone string No Ainult andmed selle uudiga tsooni kohta
record_type string No Ainult seda tüüpi kirjed, näiteks MX (juhtumit ei ole võimalik tuvastada)
page integer No Lehekülje number, alates 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"
    }
  ]
}

Vastuse olekukoodid

200 GET: edu
201 POST: loodud kirje
400 Valideerimise viga või tsoon_uid puudub või ei ole üks sinu tsoonidest
SAA PUT PATCH KUSTUTA /api/v1/dns-records/{uuid}/

Saada, uuendada või kustutada kirje

SAADA tagastab ühe kirje. PUT asendab selle ja vajab record_ type, nimi, väärtus ja ttl. PATCH muudab ainult väljad, mida saadad. DELETE eemaldab kirje ja tagastab ilma kehata 204. Muudatused avaldatakse kohe. Tsooniga loodud NS- kirjed on süsteemikirjed: nende uuendamine või kustutamine tagastab 403.

Kui sa PÜÜD MX või SRV kirje prioriteeti, saada kirje_ tüüp samasse soovi. PAATkeha eelis, kuid ilma rekord_ tüübita, puhastab prioriteedi.
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}'

Vastuse olekukoodid

200 SAADA, PUT või PATCH: kirje
204 Vastus on kustutatud.
400 Valideerimisviga
403 Kirje on süsteemikirje või märgil puudub vajalik luba
404 Ei leitud või kuulub teisele kontole

Vigade käsitlemine

Valideerimisvead tagastavad 400 koos väljanimelise probleemiga:

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

DNS muudatuste testimine

Päringu VPS.org nimeserverid otse kinnitada muutus on otse enne oma registripidaja delegatsiooni või lahendaja vahemälu järele:

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