Создавање DNS зони и управување со нивните записи. Зони се сервирани од ns1. vps.org, ns2. vps.org и ns3. vps.org.
Зона ги држи записите за еден домен. Секоја промена што ја правите преку API се притиска веднаш на серверите со име VPS.org. За да служите домен од овие зони, поставете ги своите имиња сервери на вашиот регистар на ns1. vps.org, ns2. vps.org и ns3. vps.org.
Промените се зачувани и објавуваат во еден чекор: ако серверите на име одбиваат промена, барањето враќа 502 и ништо не е зачувано. Зона не може да биде создадена за домен кој веќе управува со друга сметка, родител или дете со друга зона или VPS.org резервирано име.
Неопходна дозвола:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Враќа вашите зони, најновите, 25 на страница. Тука не се вклучени записите; донеси една зона за да ги добиеш.
| Параметр | Тип | Задолжително | Опис |
|---|---|---|---|
domain |
string | Не. | Враќа само зоната со точно ова име на доменот |
page |
integer | Не. | Број на страницата, почнувајќи од 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
}
]
}
| Поле | Тип | Опис |
|---|---|---|
uuid |
string | Идентификатор на зона |
domain |
string | Име на доменот, складирано во мала |
created_at |
datetime | Време на создавање (ISO 8601, UTC) |
record_count |
integer | Број на записи во зоната, вклучувајќи ги и трите NS записи |
| 200 | Успех |
| 403 | Недостасува или невалиден API- токен, или на токму тоа му недостига потребната дозвола |
Создава зона и ја објавува. Зоната започнува со три NS записи за ns1, ns2 и ns3. vps.org, кои се системски записи и не можат да се уредуваат или избришуваат.
| Параметр | Тип | Задолжително | Опис |
|---|---|---|---|
domain |
string | Да | Името на доменот, на пример. 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 | Зона создадена |
| 400 | Недостасува или невалидно име на доменот |
Враќа една зона со сите нејзините записи во низа на записи. Одговорот има ист облик како и одговорот на креирањето.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Успех |
| 404 | Не е пронајдено или припаѓа на друга сметка |
Ја отстранува зоната од сите три сервери со имиња, проверува дали никој од нив сѐ уште не ја служи, а потоа ја избриша зоната и нејзините записи. Ако серверот со имиња сѐ уште одговара за зоната, барањето не успеа и зоната е зачувана за да може повторно да ја повторите.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Избришано. Одговорот нема тело. |
| 400 | Серверот на име и понатаму ја служи зоната. Зоната не беше избришана; полето за детали ги наведува грешките. |
| 404 | Не е пронајдено или припаѓа на друга сметка |
Враќа секој запис во зоната како обичен низ (не е пагиниран), сортиран по тип и име. POST додава запис во зоната и го објавува.
| Параметр | Тип | Задолжително | Опис |
|---|---|---|---|
record_type |
string | Да | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Да | @ за самата домен, или етикета како www. Имената се чуваат во мала. |
value |
string | Да | Податоците за запис, на пример, IP- адреса или име на име. Името на имената не им треба следна точка и на TXT- вредности не им требаат цитати; и двете се додаваат кога е објавен записот. |
ttl |
integer | Да | Време за живеење во секунди |
priority |
integer | Само MX и SRV | Потребно е за MX и SRV записигнорирано за секој друг тип. За SRV, ставите тежина, порта и мета во вредност. |
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"
}
| Поле | Тип | Опис |
|---|---|---|
uuid |
string | Идентификатор на запис, кој се користи од /api/v1/dns- записи/ крајни точки |
priority |
integer | null | Приоритет за MX и SRV записи, во спротивно нули |
created_at |
date | Само датум на создавање (Г- ММ- ДД) без време |
| 200 | ГЕТ: записите на зоната |
| 201 | POST: записот е создаден |
| 400 | Грешка при овластување, на пример непознат тип на запис, недостасува ttl, или MX или SRV запис без приоритет |
| 404 | Не е пронајдено или припаѓа на друга сметка |
Го турка зоната и сите нејзините записи повторно во серверите на име. Изменувањата на записите се објавуваат автоматски, но објавувањето е најдобар напор и неуспехот не го пропушта оригиналното барање, па затоа користете го ова кога промената не се појавува во DNS барањата. Не е потребно тело за барање.
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"
}
Ги враќа записите за сите ваши зони, 25 по страница, наредени по домен, тип и име. POST создава рекорд како крајната точка на записот на зоната, но ја презема зоната во телото како zone_ uuid.
| Параметр | Тип | Задолжително | Опис |
|---|---|---|---|
zone |
string | Не. | Само записи за зоната со овој ууид |
record_type |
string | Не. | Само записи од овој тип, на пример MX (нечувствителен случај) |
page |
integer | Не. | Број на страницата, почнувајќи од 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 | ГЭТ: успех |
| 201 | POST: записот е создаден |
| 400 | Грешка при овластување или zone_ uuid недостасува или недна од вашите зони |
Враќа еден запис. PUT го заменува и му треба запис_ тип, име, вредност и ttl. ПАТЧ менува само полињата што ги испраќате. DELETE го отстранува записот и го враќа 204 без тело. Промените се објавуваат веднаш. NS записите создадени со зоната се системски записи: ажурирање или бришење ги враќа 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 | Гет, Пут или ПАТЧ: рекорд |
| 204 | Избришано. Одговорот нема тело. |
| 400 | Грешка при овластување |
| 403 | Рекордата е системски запис, или на жетонот му недостига потребната дозвола |
| 404 | Не е пронајдено или припаѓа на друга сметка |
Грешката во проверката враќа 400 со проблемот клучен со име на полето:
{
"priority": ["MX records require a priority value"]
}
Прашај ги зVPS.org имионсерверите директно за да потврдиш дека промената е во живо пред твојата делегација на регистарот или кешовите на решавачот да ги надојде:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com