Prehľad
DNS API poskytuje kompletnú správu DNS zón a záznamov, ktoré sú hosťované na autoritatívnych názvových serveroch VPS.org s automatickou generáciou a nasadením súborov zóny BIND9.
Infraštruktúra názvového servera
ns1.vps.org (38.248.6.195) - Primárny master s inline podpisovaním DNSSEC
ns2.vps.org (38.248.6.196) - Sekundárny otrok
ns3.vps.org (38.248.6.197) - Sekundárny otrok
Kľúčové vlastnosti a funkcie
Automatické generovanie a nasadenie súborov zón BIND9
Prenos zóny cez TSIG autentifikáciu (master-slave replikácia)
Podpora všetkých hlavných typov DNS záznamov (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)
Filtrovanie názvov domén a identifikácia zóny na základe UUID
Vnorené trasy pre správu záznamov špecifických pre zónu
Autentifikácia
Všetky požiadavky DNS API vyžadujú overenie tokenu nosiča.Generovať API tokeny z riadiaceho panela účtu na adrese /account/developers/ S nasledujúcimi oprávneniami:
dns:list - Zobrazenie zón a záznamov DNS
dns:create - Vytvorenie nových zón a záznamov
dns:update - Úprava existujúcich zón a záznamov
dns:delete - Odstránenie zón a záznamov
dns:* - Plný prístup k správe DNS
Príklad
Authorization: Bearer vps_abc123def456...
Dôležité: Tokeny API sa zobrazujú iba raz počas vytvárania.Uchovávajte ich bezpečne. Ak stratíte token, musíte vygenerovať nový.
Zoznam všetkých DNS zón
Získa stránkovaný zoznam všetkých DNS zón, ktoré vlastní overený používateľ.Podporuje filtrovanie podľa názvu domény.
Parametre dopytu
Parameter
Typ
Povinné
Opis
domain
string
Nie
Filter zones by exact domain name (e.g., example.com)
Príklad žiadosti
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Kopírovať
import requests
url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.get(url, headers=headers)
print(response.json())
Kopírovať
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
headers: {'Authorization': 'Bearer YOUR_API_TOKEN'}
});
const zones = await response.json();
console.log(zones);
Kopírovať
Príklad odpovede
[
{
"uuid": "abc123-def456-ghi789",
"domain": "example.com",
"created_at": "2024-01-15T10:30:00Z",
"record_count": 12
},
{
"uuid": "xyz789-uvw456-rst123",
"domain": "myapp.io",
"created_at": "2024-06-20T14:15:00Z",
"record_count": 8
}
]
Polia odpovede
Pole
Typ
Opis
uuid
string
Unique zone identifier (used in API requests)
domain
string
Domain name for this DNS zone
created_at
datetime
Zone creation timestamp (ISO 8601 format)
record_count
integer
Total number of DNS records in this zone
Kódy stavu odpovede
200
Successfully retrieved DNS zones list
401
Unauthorized - Invalid or missing API token
403
Forbidden - Token lacks dns:list permission
Získať podrobnosti o zóne DNS
Získajte podrobné informácie o konkrétnej zóne DNS vrátane všetkých záznamov.
Parametre cesty
Parameter
Typ
Povinné
Opis
uuid
string
Áno
Unique zone identifier
Príklad odpovede
{
"uuid": "abc123-def456-ghi789",
"domain": "example.com",
"created_at": "2024-01-15T10:30:00Z",
"record_count": 5,
"records": [
{
"uuid": "rec-001",
"record_type": "A",
"name": "@",
"value": "192.0.2.1",
"ttl": 3600,
"priority": null,
"created_at": "2024-01-15T10:30:00Z"
},
{
"uuid": "rec-002",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2024-01-15T10:32:00Z"
}
]
}
Kódy stavu odpovede
200
Successfully retrieved zone details
404
Zone not found or not owned by user
Vytvorenie DNS zóny
Vytvorte novú DNS zónu pre doménu, ktorá bude okamžite nasadená na VPS.org názvových serverov.
Parametre tela požiadavky
Parameter
Typ
Povinné
Opis
domain
string
Áno
Domain name (e.g., example.com)
Príklad žiadosti
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domain": "newdomain.com"}'
Kopírovať
import requests
url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {"domain": "newdomain.com"}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Kopírovať
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({domain: 'newdomain.com'})
});
const zone = await response.json();
console.log(zone);
Kopírovať
Príklad odpovede
{
"uuid": "new-zone-uuid",
"domain": "newdomain.com",
"created_at": "2026-01-18T16:45:00Z",
"record_count": 0,
"records": []
}
Kódy stavu odpovede
201
DNS zone created successfully
400
Bad Request - Invalid domain name or zone already exists
403
Forbidden - Token lacks dns:create permission
Odstránenie zóny DNS
Natrvalo odstrániť zónu DNS a všetky priradené záznamy. Túto akciu nie je možné vrátiť späť.
Parametre cesty
Parameter
Typ
Povinné
Opis
uuid
string
Áno
Unique zone identifier
Kódy stavu odpovede
204
Zone deleted successfully (no response body)
403
Forbidden - Token lacks dns:delete permission
404
Zone not found
Zoznam záznamov DNS v zóne
Načítať všetky DNS záznamy pre konkrétnu zónu (vnorenú trasu).
Parametre cesty
Parameter
Typ
Povinné
Opis
uuid
string
Áno
Zone UUID
Príklad žiadosti
curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Príklad odpovede
[
{
"uuid": "rec-001",
"record_type": "A",
"name": "@",
"value": "192.0.2.1",
"ttl": 3600,
"priority": null,
"created_at": "2024-01-15T10:30:00Z"
},
{
"uuid": "rec-002",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2024-01-15T10:32:00Z"
}
]
Vytvorenie DNS záznamu v zóne
Pridajte nový DNS záznam do konkrétnej zóny (vnorená trasa).
Parametre tela požiadavky
Parameter
Typ
Povinné
Opis
record_type
string
Áno
Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name
string
Áno
Record name (@ for root, subdomain, or FQDN)
value
string
Áno
Record value (IP address, hostname, text)
ttl
integer
No
Time to live in seconds (default: 3600)
priority
integer
For MX/SRV
Priority (required for MX and SRV records)
Príklad žiadosti
curl -X POST "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"record_type": "A",
"name": "www",
"value": "192.0.2.1",
"ttl": 3600
}'
Kopírovať
import requests
url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"record_type": "A",
"name": "www",
"value": "192.0.2.1",
"ttl": 3600
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Kopírovať
Kódy stavu odpovede
201
DNS record created successfully
400
Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
Správa DNS záznamov (priamy prístup)
Úplné CRUD operácie na jednotlivých DNS záznamoch pomocou UUID záznamu.
Dostupné operácie
GET /api/v1/dns-records/{uuid}/ - Retrieve record details
PUT /api/v1/dns-records/{uuid}/ - Full update (all fields required)
PATCH /api/v1/dns-records/{uuid}/ - Partial update (only changed fields)
DELETE /api/v1/dns-records/{uuid}/ - Delete record
Parametre dotazu (pre GET /api/v1/dns-records/)
Parameter
Typ
Opis
zone
string
Filter records by zone UUID
record_type
string
Filter by record type (A, AAAA, MX, etc.)
Príklad: Aktualizácia TTL záznamu
curl -X PATCH "https://admin.vps.org/api/v1/dns-records/{rec-uuid}/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ttl": 1800}'
Supported DNS Record Types
Typ
Purpose
Example Value
Priority Required
A
Maps domain to IPv4 address
192.0.2.1
Nie
AAAA
Maps domain to IPv6 address
2001:0db8::1
Nie
CNAME
Creates alias to another domain
example.com
Nie
MX
Mail server for domain
mail.example.com
Áno
TXT
Text record (SPF, DKIM, verification)
v=spf1 include:_spf.google.com ~all
Nie
NS
Nameserver delegation
ns1.example.com
Nie
SRV
Service location record
10 5060 sip.example.com
Áno
CAA
Certificate authority authorization
0 issue "letsencrypt.org"
Nie
Najlepšie postupy
Konfigurácia TTL
Výroba (stabilná): 3600-86400 sekúnd (1-24 hodín)
Pred migráciou: 300-600 sekúnd (5-10 minút) - Znížiť TTL pred plánovanými zmenami
Vývoj: 300-1800 sekúnd (5-30 minút) pre rýchlejšie testovanie
Spoločné vzory
Koreňová doména (@): Použitie záznamov A/AAAA, nie CNAME
www subdoména: Môže použiť CNAME smerovanie na koreňový alebo samostatný záznam A
E-mail (MX): Vždy zahrnúť prioritu, nižšie číslo = vyššia priorita
CNAME: Nemôže koexistovať s inými typmi záznamov pre rovnaký názov
Bezpečnosť
CAA Records: 1999 Určenie certifikačných autorití, ktoré môžu vydávať certifikáty
SPF/DKIM/DMARC: Konfigurácia overovania e-mailov na zabránenie falšovaniu
Pravidelné audity: Kontrola DNS záznamov štvrťročne, odstránenie nepoužívaných položiek
Manipulácia s chybami
Časté chyby
Stavový kód
Chyba
Roztok
400
Neplatný názov domény
Uistite sa, že doména dodržiava konvencie názvov DNS
400
MX záznam vyžaduje prioritu
Zahrnúť priority Pole pre MX a SRV záznamy
401
Neplatný API token
Formát kontrolného tokenu (musí začínať písmenom vps_)
403
Chýbajúce povolenie
Generovať nový token s požadovaným dns:* Povolenia
404
Zóna/záznam nebol nájdený
Overenie UUID a uistenie sa, že zdroj patrí k vášmu účtu
Príklad chybovej odpovede
{
"detail": "MX records require a priority value",
"error_code": "validation_error",
"field": "priority"
}
Testovanie zmien DNS
Overiť šírenie záznamov
# Query A record
dig example.com A
# Query specific nameserver
dig @ns1.vps.org example.com
# Query MX records
dig example.com MX
# Check all records
dig example.com ANY
Používanie online nástrojov
whatsmydns.net: Check global DNS propagation
dnschecker.org: Multi-location DNS lookup
mxtoolbox.com: Email-related DNS testing