Створіть зони 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. names зберігаються у нижній регістр. |
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- cords/ end points |
priority |
integer | null | Пріоритет для записів MX і SRV, у іншому випадку нульовий |
created_at |
date | Тільки дата створення (Р- ММ- ДД), без часу |
| 200 | Get: the zany's registers |
| 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"
}
Get Records entry of all your zones, 25 per page, sorted by domain, type and name. POST створює запис на зразок точки кінця зональних записів, але приймає зону у тілі як zone_ uuid.
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
zone |
string | Ні | Лише записи зони з цим uid |
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 | GET: успіх |
| 201 | POST: створено запис |
| 400 | Помилка перевірки або відсутні zone_ uuid або не є однією з ваших зон |
Get () повертає один запис. PUT замінює його і потребує запису_ типу, назви, значення і stl. PATCH змінює лише поля, які ви надсилаєте. 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 | GET, PUT або PATCH: рекорд |
| 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