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. Бу ерда ёзувлар киритилмайди; уларни олиш учун биргина зонани олинг.
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
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
}
]
}
| Асосий | Turi | Тасвирлаш |
|---|---|---|
uuid |
string | Зона идентификатори |
domain |
string | Домен номи, кичик ҳарфларда сақланмоқда |
created_at |
datetime | Юклаш вақти (ISO 8601, UTC) |
record_count |
integer | Зонада ёзувлар сони, учта NS ёзувларини ҳам ҳисобга олган ҳолда |
| 200 | Муваффақият |
| 403 | API токен йўқ ёки нодуруст, ёки токенда талаб қилинган рухсат йўқ |
Зона яратиб, уни эълон қилади. Зона ns1, ns2 ва ns3.vps.org учун учта NS ёзуви билан бошланади, булар тизим ёзувлари бўлиб, уларни ўзгартириш ёки ўчириб ташлаш мумкин эмас.
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
domain |
string | Ha | Домен номи, мисол учун 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 | Зонага ном сервери ҳали ҳам хизмат кўрсатмоқда. Зона йўқ қилинмади; тафсилотлар майдони хатоларни кўрсатади. |
| 404 | Топилмади ёки бошқа ҳисобга тегишли |
GET зонадаги барча ёзувларни оддий матрица (бетларсиз) сифатида қайтаради, тур ва ном бўйича тартибланади. POST зонага ёзувни қўшиб, уни эълон қилади.
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
record_type |
string | Ha | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Ha | @ доменнинг ўзи учун ёки www каби белги учун. Номлар кичик ҳарфларда сақланади. |
value |
string | Ha | Захира маълумотлари, масалан IP манзили ёки хост номи. Хост номлари учун охирида нуқта ва TXT қийматлари учун иқтибослар керак эмас; иккаласи ҳам заҳира чоп этилганда қўшилади. |
ttl |
integer | Ha | Секундларда яшаш вақти |
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"
}
| Асосий | Turi | Тасвирлаш |
|---|---|---|
uuid |
string | /api/v1/dns-records/ охирида фойдаланиладиган ёзув идентификатори |
priority |
integer | null | MX ва SRV ёзувлари учун устуворлик, бошқача бўлса нуқсонли |
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 деб олади.
| Парамeтрлар | Turi | Majburiy | Тасвирлаш |
|---|---|---|---|
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 ном серверларидан тўғридан-тўғри сўров юборинг:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com