Преглед
ДНС АПИ обезбеђује пуно управљање ДНС зонама и записима. Све зоне су домаћине на ауторитетним серверима имена VPS.org са аутоматским стварањем и разм› јештањем фајлова у зони БИНД9.
Инфраструктура сервера имена
ns1.vps.org (38.248.6.195) - Примарни мајстор са ДНССЕК потписивањем
ns2.vps.org (38.248.6.196) - секундарни роб
ns3.vps.org (38.248.6.197) - секундарни роб
Могућности кључева
Аутоматско стварање и распоредање фајлова зоне БИНД9
Зоне преносе преко ТСИГ аутентификације (мастер- роб репликација)
Подршка за све веће типове ДНС записа (А, АААА, ЦИМЕ, МКС, ТXТ, NS, СРВ, ЦАА)
филтрирање имена домена и идентификација зоне заснована на УУИД‐ у
Угњежђене руте за управљање записама посебним за зону
Аутентификација
Сви захт› јеви ДНС АПИ захтевају аутентификацију беареровог токена. Генерирајте АПИ токене из табле налога на /account/developers/ са с‹ љедећим дозволама:
dns:list - Прикажи ДНС зоне и записе
dns:create - Направи нове зоне и записе
dns:update - Изм› ијени постојеће зоне и записе
dns:delete - Обриши зоне и записе
dns:* - Пун приступ управљању ДНС‐ ом
Пример
Authorization: Bearer vps_abc123def456...
Важно: АПИ жетони се приказују само једном током стварања. Чувајте их безбедно. Ако изгубите жетон, морате да направите нови.
Листа свих DNS зона
Добавља пагиниран списак свих ДНС зона у власништву аутентификованог корисника. Подржава филтрирање по имену домена.
Параметри упита
Параметар
Тип
Обавезно
Опис
domain
string
Не.
Filter zones by exact domain name (e.g., example.com)
Пример захтева
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
-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)
print(response.json())
Копирај
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);
Копирај
Пример одговора
[
{
"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
}
]
Поља за одговор
Поље
Тип
Опис
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
Кодови статуса одговора
200
Successfully retrieved DNS zones list
401
Unauthorized - Invalid or missing API token
403
Forbidden - Token lacks dns:list permission
Детаљи ДНС зоне
Добавља детаљне информације о одређеној ДНС зони, укључујући и све записе.
Параметри путање
Параметар
Тип
Обавезно
Опис
uuid
string
Да
Unique zone identifier
Пример одговора
{
"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"
}
]
}
Кодови статуса одговора
200
Successfully retrieved zone details
404
Zone not found or not owned by user
Направи ДНС зону
Направите нову ДНС зону за домен. Зона ће одмах бити размештена на VPS.org сервера имена.
Захтевајте параметре тела
Параметар
Тип
Обавезно
Опис
domain
string
Да
Domain name (e.g., 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": "newdomain.com"}'
Копирај
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())
Копирај
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);
Копирај
Пример одговора
{
"uuid": "new-zone-uuid",
"domain": "newdomain.com",
"created_at": "2026-01-18T16:45:00Z",
"record_count": 0,
"records": []
}
Кодови статуса одговора
201
DNS zone created successfully
400
Bad Request - Invalid domain name or zone already exists
403
Forbidden - Token lacks dns:create permission
Обриши ДНС зону
Трајно бришите ДНС зону и све придружене записе. Ова радња не може бити опозвана.
Параметри путање
Параметар
Тип
Обавезно
Опис
uuid
string
Да
Unique zone identifier
Кодови статуса одговора
204
Zone deleted successfully (no response body)
403
Forbidden - Token lacks dns:delete permission
404
Zone not found
Наброји ДНС записе у зони
Добавља све ДНС записе за одређену зону (наведену руту).
Параметри путање
Параметар
Тип
Обавезно
Опис
uuid
string
Да
Zone UUID
Пример захтева
curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Пример одговора
[
{
"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"
}
]
Направи ДНС запис у зони
Додај нови ДНС запис у одређену зону (наведени пут).
Захтевајте параметре тела
Параметар
Тип
Обавезно
Опис
record_type
string
Да
Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name
string
Да
Record name (@ for root, subdomain, or FQDN)
value
string
Да
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)
Пример захтева
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
}'
Копирај
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())
Копирај
Кодови статуса одговора
201
DNS record created successfully
400
Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
Управљај ДНС записима (директан приступ)
Потпуни ЦРУД операције на појединачним ДНС записима користећи запис УУИД.
доступне операције
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
Параметри упита (за ГЕТ / api/ v1/ dns- записе /)
Parameter
Тип
Опис
zone
string
Filter records by zone UUID
record_type
string
Filter by record type (A, AAAA, MX, etc.)
Пример: Ажурирај ТТЛ записа
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
Тип
Purpose
Example Value
Priority Required
A
Maps domain to IPv4 address
192.0.2.1
Не.
AAAA
Maps domain to IPv6 address
2001:0db8::1
Не.
CNAME
Creates alias to another domain
example.com
Не.
MX
Mail server for domain
mail.example.com
Да
TXT
Text record (SPF, DKIM, verification)
v=spf1 include:_spf.google.com ~all
Не.
NS
Nameserver delegation
ns1.example.com
Не.
SRV
Service location record
10 5060 sip.example.com
Да
CAA
Certificate authority authorization
0 issue "letsencrypt.org"
Не.
Најбоље праксе
Подешавање ТТЛ‐ а
Производња (стабло): 3600- 86400 секунди (1- 24 сата)
Пре миграције: 300‐ 600 секунди (5- 10 минута) — доњи ТТЛ пре планираних изм› јена
Развој: 300-1800 секунди (5-30 минута) за брже тестирање
Уобичајени обрасци
Домен корена (@): Користи А/АААА записе, а не ЦИМЕ
www- subdomain: Може се користити ЦИМЕ указујући на кор› ијен или одвојен записName
Е‐ пошта (МКС): Увек укључи приоритет, мањи број = већи приоритет
ЦИМЕ: Не могу да постојим са другим типовима снимања за исто име
Безб› иједност
ЦАА записи: Наведите које ЦА могу да издају сертификате
СПФ/ДКИМ/ДМАРК: Подешавање аутентификације е‐ поште за спречавање спуњавања
Редовне ревизије: Преглед ДНС записа тримесечно, уклони неискористене ставке
Рашчлањивање грешака
Уобичајене грешке
Код статуса
Грешка
решење
400
Неисправно име домена
Осигурајте да домен прати конвенције имена ДНС‐ а
400
~@ ¦МИкс¦MX¦ запис захт› ијева приоритет
Укључи priority поље за МКС и СРВ записе
401
Неисправан АПИ знак
Пров› јери формат жетона (мора почети са vps_)
403
Недостаје дозвола
Стварање новог жетона са неопходним dns:* дозволе
404
Зона/снимак није нађен
Пров› јерите УУИД и осигурајте да ресурс припада вашем налогу
Пример одговора на грешку
{
"detail": "MX records require a priority value",
"error_code": "validation_error",
"field": "priority"
}
Проба изм› јена ДНС‐ а
Пров› јери повећање записа
# 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
Коришћење онлајн алатки
whatsmydns.net: Check global DNS propagation
dnschecker.org: Multi-location DNS lookup
mxtoolbox.com: Email-related DNS testing