VPS.org API

REST API dokumentācija

DNS pārvaldības API

Izveidot DNS zonas un pārvaldīt to ierakstus. Zonas apkalpo ns1.vps.org, ns2.vps.org un ns3.vps.org.

Galapunkti 13
Bāzes ceļš /api/v1/dns-zones, /api/v1/dns-records

Pārskats

Zona satur ierakstus vienam domēnam. Katras izmaiņas, ko veicat caur API, tiek nospiestas uz VPS.org nosaukumu servisiem uzreiz. Lai apkalpotu domēnu no šīm zonām, nostādiet tās nosaukumus savā reģistrā uz ns1. vps.org, ns2. zqx1qz un ns3. zqxqz.

Izmaiņas tiek saglabātas un publicētas vienā posmā: ja vārdu serveri atsaka izmaiņas, pieprasījums atgriež 502 un nekas netiek saglabāts. Nevar izveidot zonu domēnam, citam kontam, kas jau pārvalda, vecāks vai bērns no citas konta zonas, vai VPS.org rezervētais nosaukums.

Nepieciešamā atļauja: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

IEGŪT /api/v1/dns-zones/

Uzskaitīt visas DNS zonas

Atgriež savu zonu, pirmo reizi, 25 lapā. Ieraksti šeit nav iekļauti; ielādējiet vienu zonu, lai tās saņemtu.

Vaicājuma parametri

Parametrs Tips Obligāti Apraksts
domain string Nē Atgriezt tikai zonu ar tieši šo domēna vārdu
page integer Nē Lapas numurs, sākot ar 1

Pieprasījuma piemērs

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

Atbildes piemērs

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

Atbildes lauki

Lauks Tips Apraksts
uuid string Zonas identifikators
domain string Domēna nosaukums, saglabāts mazajā kasē
created_at datetime Izveides laiks (ISO 8601, UTC)
record_count integer Ierakstu skaits zonā, ieskaitot trīs NS ierakstus

Atbildes statusa kodi

200 Panākumi
403 Trūkst vai nav spēkā API žetons, vai žetonam trūkst nepieciešamās atļaujas
POSMS /api/v1/dns-zones/

Izveidot DNS zonu

Izveido zonu un publicē to. Zona sākas ar trim NS ierakstiem par ns1, ns2 un ns3.vps.org, kas ir sistēmas ieraksti un ko nevar rediģēt vai dzēst.

Pieprasījuma pamatteksta parametri

Parametrs Tips Obligāti Apraksts
domain string Jā Domēna vārds, piemēram.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"}'

Atbildes piemērs

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

Atbildes statusa kodi

201 Izveidotā zona
400 Trūkst domēna vārda vai tas ir nederīgs
IEGŪT /api/v1/dns-zones/{uuid}/

Iegūst DNS zonas detaļas

Atgriež vienu zonu ar visiem tās ierakstiem ierakstu masīvā. Atbildei ir tāda pati forma kā radīt atbildi iepriekš.

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

Atbildes statusa kodi

200 Panākumi
404 Nav atrasts, vai arī tas pieder citam kontam
DZĒST /api/v1/dns-zones/{uuid}/

Dzēst DNS zonu

Izņem zonu no visiem trim nosaukumu serveriem, pārbauda, vai neviens no tiem vēl nekalpo, un tad izdzēš zonu un tās ierakstus. Ja vārdu serveris joprojām atbild uz šo zonu, pieprasījums neizdodas un zona tiek saglabāta, lai jūs varētu vēlreiz mēģināt.

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

Atbildes statusa kodi

204 Dzēsta. Atbilde nav ķermeņa.
400 Nosaukums serveris joprojām kalpo zonai. Zona netika dzēsta; sīks lauks norāda kļūdas.
404 Nav atrasts, vai arī tas pieder citam kontam
IEGŪT POSMS /api/v1/dns-zones/{uuid}/records/

Sarakstēt vai pievienot ierakstus zonā

GET atgriež katru ierakstu zonā kā vienkāršu masīvu (nav iepazīšanās), šķirot pēc tipa un nosaukuma. Post pievieno ierakstu uz zonas un publicē to.

Pieprasījuma pamatteksta parametri (POST)

Parametrs Tips Obligāti Apraksts
record_type string Jā A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Jā @ domēnam, vai piemēram, www. Vārdi tiek glabāti mazā izmērā.
value string Jā Ierakstu dati, piemēram, IP adrese vai datora nosaukums. Vēstulē nav nepieciešams izsekošanas punkts, un TXT vērtības nav nepieciešamas citāti; abas tiek pievienotas, kad ieraksts tiek publicēts.
ttl integer Jā Laiks dzīvot sekundēs
priority integer Tikai MX un SRV Vajadzīgs MX un SRV ierakstiem un ignorēts katram citam tipam. SRV, ieliec svaru, portu un mērķi vērtībā.

Pieprasījuma piemērs

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

Atbildes piemērs

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

Atbildes lauki

Lauks Tips Apraksts
uuid string Ieraksta identifikators, ko izmanto /api/v1/dns-ieraksti/mērķi
priority integer | null Prioritāte MX un SRV ierakstiem, citādi nulle
created_at date Tikai izveidošanas datums (G-MM-DD), bez laika

Atbildes statusa kodi

200 GET: zonas dati
201 Post: ierakstīšanas datums
400 Validācijas kļūda, piemēram, nezināms ieraksta tips, trūkstošs ttl, vai MX vai SRV ieraksts bez prioritātes
404 Nav atrasts, vai arī tas pieder citam kontam
POSMS /api/v1/dns-zones/{uuid}/sync/

Atjaunināt zonu

Nospiež zonu un visus tās ierakstus uz vārdu serveriem. Ieraksti izmaiņas tiek publicētas automātiski, bet publikācija ir labākais pūles un neizdevās izpildīt sākotnējo pieprasījumu, tāpēc izmantojiet šo, ja izmaiņas neparādās DNS lookups. Nav nepieciešams pieprasīt iestādi.

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"
}
IEGŪT POSMS /api/v1/dns-records/

Sarakstēt vai izveidot ierakstus starp zonām

GET atgriež ierakstus par visām jūsu zonām, 25 par lapu, pasūtīts pēc domēna, tipa un nosaukuma. Post rada ierakstu, piemēram, zonas ierakstu mērķa kritērijs, bet ņem zonu organismā kā zona_uid.

Vaicājuma parametri

Parametrs Tips Obligāti Apraksts
zone string Nē Tikai ieraksti par zonu ar šo uuid
record_type string Nē Tikai šāda veida ieraksti, piemēram, MX (nejutīgs gadījums)
page integer Nē Lapas numurs, sākot ar 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"
    }
  ]
}

Atbildes statusa kodi

200 GET: panākumi
201 Post: ierakstīšanas datums
400 Validācijas kļūda, vai zone_uid trūkst, vai ne kāda no jūsu zonām
IEGŪT PUT PATCH DZĒST /api/v1/dns-records/{uuid}/

Ierakstu saņem, atjaunina vai svītro

GET atgriež vienu ierakstu. PUT aizstāj to un ir nepieciešams record_ type, name, value un ttl. PATCH maina tikai nosūtītos laukus. DELETE noņem ierakstu un atgriež 204 bez ķermeņa. Izmaiņas tiek publicētas uzreiz. NS ieraksti, kas izveidoti ar zonu ir sistēmas ieraksti: tos atjaunina vai izdzēš atgriež 403.

Kad jūs PATCH par prioritāti MX vai SRV ierakstu, sūtiet ierakstu_tipu tajā pašā pieprasījumā. PATCH iestāde ar prioritāti, bet bez ieraksta_tips nošķir prioritāti.
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}'

Atbildes statusa kodi

200 GET, PUT vai PATCH: ieraksts
204 Dzēsta. Atbilde nav ķermeņa.
400 Validācijas kļūda
403 Ieraksts ir sistēmas ieraksts, vai marķieris trūkst vajadzīgo atļauju
404 Nav atrasts, vai arī tas pieder citam kontam

Kļūdu apstrāde

Validācijas kļūdas atgriež 400 ar problēmu, kas atslēgta ar lauka nosaukumu:

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

Testēšana DNS izmaiņas

Pārbaudīt VPS.org nosaukumuserveri tieši, lai apstiprinātu izmaiņas ir dzīvot pirms jūsu reģistratora delegācijas vai atrisinātāja kešatmiņas pieķeršanās:

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