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 | Ооба | Домендин аты, мисалы 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": "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 | A nameserver still serves the zone. The zone was not deleted; the detail field lists the errors. |
| 404 | Табылган жок же башка эсептик жазууга таандык |
GET зонадагы ар бир жазуу боюнча тип жана аталыш боюнча сорттолгон таза масив (баракталбаган) катары кайтарат. 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-records/ endpoints |
priority |
integer | null | MX жана SRV жазууларынын приоритети, башкача null |
created_at |
date | Жаратуу күнү гана (Y-MM-DD), убакыт жок |
| 200 | GET: зонанын жазуулары |
| 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_uuid катары алат.
| Параметрлер | Түрү | Талап кылынат | Сүрөт |
|---|---|---|---|
zone |
string | Жок | Бул uuid менен зонанын гана жазуулары |
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 аны алмаштырат жана record_type, name, value жана ttl керек. 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 nameservers:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com