Napravite DNS zone i upravljajte njihovim zapisima. Zone su poslužene od strane ns1.vps.org, ns2.vps.org i ns3.vps.org.
Zona drži zapise za jednu domenu. Svaka promjena koju napravite kroz API je odmah prebačena na VPS.org nameservere. Da biste poslužili domenu iz ovih zona, postavite njene nameservere u vašem registratoru na ns1.vps.org, ns2.vps.org i ns3.vps.org.
Promjene se spremaju i objavljuju u jednom koraku: ako nameserver odbije promjenu, zahtjev vraća 502 i ništa se ne sprema. Zona se ne može kreirati za domenu kojom već upravlja drugi račun, roditelj ili dijete zone drugog računa, ili rezervirano ime VPS.org.
Potrebna dozvola:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Vraća vaše zone, najnovije prvo, 25 po stranici. Zapisi nisu uključeni ovdje; dohvatite jednu zonu da ih dobijete.
| Parametar | Tip | Obavezno | Opis |
|---|---|---|---|
domain |
string | Ne, ne, ne. | Vraća samo zonu sa tačno ovim imenom domena |
page |
integer | Ne, ne, ne. | Broj stranica, poÄŤevši od 1 |
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);
{
"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
}
]
}
| Polje | Tip | Opis |
|---|---|---|
uuid |
string | Identifikator zone |
domain |
string | Ime domene, pohranjeno malim slovima |
created_at |
datetime | Vrijeme stvaranja (ISO 8601, UTC) |
record_count |
integer | Broj zapisa u zoni, uključujući tri NS zapisa |
| 200 | Uspjeh |
| 403 | Nedostaje ili nije valjan API token, ili token nema potrebne dozvole |
Stvara zonu i objavljuje je. Zona počinje sa tri NS zapisa za ns1, ns2 i ns3.vps.org, koji su sistemski zapisi i ne mogu se uređivati ili brisati.
| Parametar | Tip | Obavezno | Opis |
|---|---|---|---|
domain |
string | Da | Ime domena, na primjer 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"}'
{
"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
}
| 201 | Zona napravljena |
| 400 | Nedostaje ili nije valjano ime domene |
Vraća jednu zonu sa svim njenim zapisima u nizu zapisa. Odgovor ima isti oblik kao odgovor na kreiranje gore.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Uspjeh |
| 404 | Nije pronađen, ili pripada drugom računu |
Ukloni zonu sa sva tri nameservera, provjeri da je nijedan od njih još uvijek ne služi, a zatim izbriše zonu i njene zapise. Ako nameserver još uvijek odgovara za zonu, zahtjev ne uspijeva i zona se zadržava tako da možete ponovno pokušati.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Izbrisano. Odgovor nema tijelo. |
| 400 | Nameserver još uvijek služi zonu. Zona nije izbrisana; polje detalja navodi greške. |
| 404 | Nije pronađen, ili pripada drugom računu |
GET vraća svaki zapis u zoni kao običan niz (ne paginated), sortiran po tipu i imenu. POST dodaje zapis u zonu i objavljuje ga.
| Parametar | Tip | Obavezno | Opis |
|---|---|---|---|
record_type |
string | Da | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Da | @ za sam domen, ili oznaku kao što je www. Imena su pohranjena u malim slovima. |
value |
string | Da | Podaci zapisa, naprimjer IP adresa ili ime računara. Ime računara ne treba završnu tačku i TXT vrijednosti ne trebaju navodnike; oboje se dodaje kada se zapis objavi. |
ttl |
integer | Da | Vrijeme za život u sekundama |
priority |
integer | Samo MX i SRV | Zahtijeva se za MX i SRV zapise i ignorira se za sve druge vrste. Za SRV, stavite težinu, port i odredište u vrijednost. |
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())
{
"uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2026-09-14"
}
| Polje | Tip | Opis |
|---|---|---|
uuid |
string | Identifikator zapisa, koristi se od strane /api/v1/dns-records/ krajnjih tačaka |
priority |
integer | null | Prioritet za MX i SRV zapise, inače null |
created_at |
date | Samo datum stvaranja (G-MM-DD), bez vremena |
| 200 | GET: zone records |
| 201 | POST: zapis napravljen |
| 400 | Greška prilikom provjere, na primjer nepoznata vrsta zapisa, nedostaje ttl, ili MX ili SRV zapis bez prioriteta |
| 404 | Nije pronađen, ili pripada drugom računu |
Pomiče zonu i sve njene zapise na nameservere ponovo. Promjene zapisa se objavljuju automatski, ali objavljivanje je najbolji napor i neuspjeh ne propušta originalni zahtjev, tako da koristite ovo kada se promjena ne pojavi u DNS pretraživanjima. Nema tijela zahtjeva potrebno.
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"
}
GET vraća zapise svih vaših zona, 25 po stranici, poredane po domeni, tipu i imenu. POST stvara zapis kao krajnju tačku zapisa zone, ali uzima zonu u tijelu kao zone_uuid.
| Parametar | Tip | Obavezno | Opis |
|---|---|---|---|
zone |
string | Ne, ne, ne. | Samo zapisi zone sa ovim uuid |
record_type |
string | Ne, ne, ne. | Samo zapisi ove vrste, npr. MX (ne razlikuje mala i velika slova) |
page |
integer | Ne, ne, ne. | Broj stranica, 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"
}
]
}
| 200 | GET: success |
| 201 | POST: zapis napravljen |
| 400 | Greška prilikom provjere, ili zone_uuid nedostaje ili nije jedna od vaših zona |
GET vraća jedan zapis. PUT ga zamjenjuje i treba record_type, ime, vrijednost i ttl. PATCH mijenja samo polja koja šaljete. DELETE uklanja zapis i vraća 204 bez tijela. Promjene se objavljuju odmah. NS zapisi napravljeni sa zonom su sistemski zapisi: ažuriranje ili brisanje njih vraća 403.
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}'
| 200 | GET, PUT ili PATCH: zapis |
| 204 | Izbrisano. Odgovor nema tijelo. |
| 400 | Greška prilikom provjere |
| 403 | Zapis je sistemski zapis, ili token nema potrebne dozvole |
| 404 | Nije pronađen, ili pripada drugom računu |
Greške u provjeri vraćaju 400 sa problemom ključan po imenu polja:
{
"priority": ["MX records require a priority value"]
}
Upitajte VPS.org nameservere direktno da potvrdite promjenu prije nego što vaš registrator delegata ili cache-ovi rješavača nadoknade:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com