Create DNS zones and manage their records. Zones are served by ns1.vps.org, ns2.vps.org and ns3.vps.org.
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:*
Vraća vaše zone, najnovije, 25 po stranici. Ovdje zapisi nisu uključeni; donesite jednu zonu za njih.
| 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 |
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 u malom |
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 neispravan API žeton, ili token nedostaje potrebna dozvola |
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.
| 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"}'
{
"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 stvorena |
| 400 | Nedostaje ili neispravno ime domene |
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"
| 200 | Uspjeh |
| 404 | Nije pronađeno, ili pripada drugom računu |
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"
| 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 |
Vraca svaki zapis u zoni kao obični niz (ne paginirani), sortiran po tipu i imenu. POST dodaje zapis u zonu i objavi ga.
| 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. |
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, 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 |
| 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 |
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"
}
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 | 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"
}
]
}
| 200 | GET: uspjeh |
| 201 | POST: zapis stvoren |
| 400 | Greška pri provjeri ili zone_uuida nedostaje ili nije jedna od vaših zona |
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.
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: 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 |
Pogreške pri provjeri vratite 400 s problemom koji je ključan poljem:
{
"priority": ["MX records require a priority value"]
}
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