VPS.org API

REST API dokumentacija

API za upravljanje DNS-om

Create DNS zones and manage their records. Zones are served by ns1.vps.org, ns2.vps.org and ns3.vps.org.

Krajnje točke 13
Osnovni put /api/v1/dns-zones, /api/v1/dns-records

Pregled

Zona sadrži zapise za jednu domenu. Svaka promjena koju napravite kroz API je gurnuta na VPS.org servere imena odmah. Da biste poslužili domenu iz ovih zona, postavite svoje servere imena na vaš registrar na ns1.zqx1xz, ns2.vps.org i ns3.vps.org.

Izmjene se spremaju i objavljuju u jednom koraku: ako ime serveri odbijaju promjenu, zahtjev vraća 502 i ništa nije spremljen. Zona ne može biti stvorena za domenu koju drugi račun već upravlja, roditelj ili dijete drugog računa ili VPS.org rezervirano ime.

Potrebna dozvola: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

DOBITI /api/v1/dns-zones/

Popis svih DNS zona

Vraća vaše zone, najnovije, 25 po stranici. Ovdje zapisi nisu uključeni; donesite jednu zonu za njih.

Parametri upita

Parametri Tip Potreban Opis
domain string Ne. Vrati samo zonu s točno ovim imenom domene
page integer Ne. Broj stranice, počevši od 1

Primjer zahtjeva

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

Primjer 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 Tip Opis
uuid string Identifikator zone
domain string Ime domene, pohranjeno u malom
created_at datetime Vrijeme stvaranja (ISO 8601, UTC)
record_count integer Broj zapisa u zoni, uključujući tri NS zapisa

Kodovi statusa odgovora

200 Uspjeh
403 Nedostaje ili neispravan API žeton, ili token nedostaje potrebna dozvola
POST /api/v1/dns-zones/

Napravi DNS zonu

Stvara zonu i objavljuje je. Zona počinje s tri NS zapisa za ns1, ns2 i ns3.vps.org, koji su sistemski zapisi i ne mogu se uređivati ili brisati.

Zahtjev za parametre tijela

Parametri Tip Potreban Opis
domain string Da Ime domene, primjer.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"}'

Primjer 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
}

Kodovi statusa odgovora

201 Zona stvorena
400 Nedostaje ili neispravno ime domene
DOBITI /api/v1/dns-zones/{uuid}/

Detalji o DNS zoni

Vraća jednu zonu sa svim svojim zapisima u nizu zapisa. Odgovor ima isti oblik kao i odgovor na stvaranje iznad.

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

Kodovi statusa odgovora

200 Uspjeh
404 Nije pronađeno, ili pripada drugom računu
IZBRISATI /api/v1/dns-zones/{uuid}/

Obriši DNS zonu

Uklanja zonu sa svih tri servera imena, provjerava da je nijedna od njih još uvijek ne služi, a zatim briše zonu i njegove zapise. Ako server imena još uvijek odgovara za zonu, zahtjev ne uspije i zona se čuva tako da možete ponovno ponavljati.

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

Kodovi statusa odgovora

204 Odgovor nema tijelo.
400 Imenski server još uvijek služi zoni. Zona nije izbrisana; polje detalja navodi greške.
404 Nije pronađeno, ili pripada drugom računu
DOBITI POST /api/v1/dns-zones/{uuid}/records/

Popis ili dodavanje zapisa u zoni

Vraca svaki zapis u zoni kao obični niz (ne paginirani), sortiran po tipu i imenu. POST dodaje zapis u zonu i objavi ga.

Zahtjev za parametre tijela (POST)

Parametri Tip Potreban Opis
record_type string Da A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Da @ za sam domenu, ili oznaka kao što je www. Imena su pohranjena u malu.
value string Da Podaci zapisa, primjerice IP adresa ili ime računala. Ime i imena ne trebaju nasljednu tačku i TXT vrijednosti ne trebaju citati; oboje se dodaju kada se zapis objavi.
ttl integer Da Vrijeme za život u sekundama
priority integer Samo MX i SRV Za zapise MX i SRV i zanemareno za sve druge vrste. Za SRV, stavite težinu, port i cilj u vrijednosti.

Primjer zahtjeva

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

Primjer 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 Tip Opis
uuid string Identifikator zapisa, koji se koristi za zapise /api/v1/dns/identificirane mjere ishoda
priority integer | null Prioritet za MX i SRV zapise, inače nul
created_at date Samo datum stvaranja (G-MM-DD), bez vremena

Kodovi statusa odgovora

200 Get: zapisi zone
201 POST: zapis stvoren
400 Greška pri provjeri, na primjer nepoznat tip zapisa, nedostajuće ttl ili MX ili SRV zapis bez prioriteta
404 Nije pronađeno, ili pripada drugom računu
POST /api/v1/dns-zones/{uuid}/sync/

Objavite zonu

Gura zonu i sve njegove zapise na servere imena ponovo. Izmjene zapisa se objavljuju automatski, ali objavljivanje je najbolji napor i neuspjeh ne uspije izvorni zahtjev, pa koristite ovo kada se promjena ne pojavi u DNS traženju. Nije potrebno zatražiti tijelo.

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

Popis ili stvori zapise preko zona

Vraća zapise svih vaših zona, 25 po stranici, naručeno po domeni, tipu i imenu. POST stvara zapis kao što je zona zapisuje ishod, ali uzima zonu u tijelu kao zone_uuidin.

Parametri upita

Parametri Tip Potreban Opis
zone string Ne. Samo zapisi o zoni s ovim uuid
record_type string Ne. Samo zapisi ove vrste, na primjer MX (neosjetljiv slučaj)
page integer Ne. Broj stranice, počevši 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"
    }
  ]
}

Kodovi statusa odgovora

200 GET: uspjeh
201 POST: zapis stvoren
400 Greška pri provjeri ili zone_uuida nedostaje ili nije jedna od vaših zona
DOBITI PUT PATCH IZBRISATI /api/v1/dns-records/{uuid}/

Dobiti, ažurirati ili obrisati zapis

Vraća jedan zapis. PUT ga zamjenjuje i treba zapisi o tipu zapisa, ime, vrijednost i ttl. PATCH mijenja samo polja koja šaljete. DELETE uklanja zapis i vraća 204 bez tijela. Promjene se odmah objavljuju. NS zapisi stvoreni sa zonom su sistemski zapisi: ažuriranje ili brisanje ih vraća 403.

Kada PATCH prioritet MX ili SRV zapisa, poslati zapisnik_tip u istom zahtjevu. PATCH tijelo s prioritetom, ali bez rekord_tipa čisti 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}'

Kodovi statusa odgovora

200 GET, PUT ILI PATCH: rekord
204 Odgovor nema tijelo.
400 Greška pri provjeri
403 Zapis je sistemski zapis, ili token nedostaje potrebno dopuštenje
404 Nije pronađeno, ili pripada drugom računu

Rukovanje greškama

Pogreške pri provjeri vratite 400 s problemom koji je ključan poljem:

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

Testiranje promjena DNS-a

Upit VPS.org imeservera izravno potvrditi promjena je uživo prije vaše registrarne delegacije ili rješavač caches sustići:

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