Създаване на DNS зони и управление на техните записи. Зони се сервират от NS1.vps.org, NS2.vps.org и NS3.vps.org.
A zone holds the records for one domain. Every change you make through the API is pushed to the VPS.org nameservers straight away. To serve a domain from these zones, set its nameservers at your registrar to ns1.vps.org, ns2.vps.org and 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 | Не е намерено или принадлежи на друга сметка |
GE връща всеки запис в зоната като обикновен масив (не пагиниран), сортиран по тип и име. 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"
}
GET връща записите на всички зони, 25 на страница, поръчани по домен, тип и име. POST създава рекорд като крайна точка на зоната, но заема зоната в тялото като zone_uuiid.
| Параметр | Тип | Задължително | Описание |
|---|---|---|---|
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 липсва или не една от вашите зони |
GET връща един запис. PUT го заменя и се нуждае от запис_ тип, име, стойност и ttl. PURT променя само полетата, които изпращате. 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