Umumiy ma'lumot
DNS API DNS зоналари ва ёзувларни тўлиқ бошқаришни таъминлайди. Барча зоналар VPS.org'нинг ишончли ном серверларида автоматик BIND9 зона файли яратиш ва ўрнатиш билан жойлаштирилади.
Nameserver инфратузилма
ns1.vps.org (38.248.6.195) - DNSSEC остида имзоланган асосий бошловчи
ns2.vps.org (38.248.6.196) - Иккинчи slave
ns3.vps.org (38.248.6.197) - Иккинчи slave
Асосий хусусиятлар
Автоматик BIND9 зона файлини яратиш ва ўрнатиш
TSIG аутентификацияси орқали зона кўчиришлари (бошқарув-бошқарув нусхаси)
Барча асосий DNS ёзув турларини қўллаб-қувватлаш (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)
Домен номи филтри ва UUID-га асосланган зона идентификацияси
Зона-махсус ёзув бошқаруви учун жойлаштирилган йўллар
Autentifikatsiya
Барча DNS API талаблари Bearer token аутентификациясини талаб қилади. API tokenларини ҳисобингиз панелидан яратинг /account/developers/ қуйидаги рухсатлар билан:
dns:list - DNS зоналари ва ёзувларни кўриш
dns:create - Янги зоналар ва ёзувлар яратиш
dns:update - Мавжуд зоналар ва ёзувларни ўзгартириш
dns:delete - Зона ва ёзувларни ўчириб ташлаш
dns:* - DNS бошқарувига тўлиқ кириш
Мисол
Authorization: Bearer vps_abc123def456...
Маълумот: API токенлари яратиш вақтида фақат бир марта кўрсатилади. Уларни хавфсиз сақланг. Агар сиз токенни йўқотсангиз, янгисини яратишингиз керак.
Barcha DNS zonalarini ro'yxatlash
Аутентификация қилинган фойдаланувчига тегишли барча DNS зоналарининг саҳифаланган рўйхатини олиш. Домен номи бўйича филтрлашни қўллаб-қувватлайди.
So'rov parametrlari
Парамeтрлар
Turi
Majburiy
Тасвирлаш
domain
string
Йўқ
Filter zones by exact domain name (e.g., example.com)
Namunaviy so'rov
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
-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)
print(response.json())
Нусха олиш
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
headers: {'Authorization': 'Bearer YOUR_API_TOKEN'}
});
const zones = await response.json();
console.log(zones);
Нусха олиш
Javob namunasi
[
{
"uuid": "abc123-def456-ghi789",
"domain": "example.com",
"created_at": "2024-01-15T10:30:00Z",
"record_count": 12
},
{
"uuid": "xyz789-uvw456-rst123",
"domain": "myapp.io",
"created_at": "2024-06-20T14:15:00Z",
"record_count": 8
}
]
Javob maydonlari
Асосий
Turi
Тасвирлаш
uuid
string
Unique zone identifier (used in API requests)
domain
string
Domain name for this DNS zone
created_at
datetime
Zone creation timestamp (ISO 8601 format)
record_count
integer
Total number of DNS records in this zone
Javob holati kodlari
200
Successfully retrieved DNS zones list
401
Unauthorized - Invalid or missing API token
403
Forbidden - Token lacks dns:list permission
DNS зонаси тафсилотларини олиш
Барча ёзувларни ўз ичига олган, муайян DNS зонаси ҳақидаги батафсил маълумотларни олиш.
Yo'l parametrlari
Парамeтрлар
Turi
Majburiy
Тасвирлаш
uuid
string
Ha
Unique zone identifier
Javob namunasi
{
"uuid": "abc123-def456-ghi789",
"domain": "example.com",
"created_at": "2024-01-15T10:30:00Z",
"record_count": 5,
"records": [
{
"uuid": "rec-001",
"record_type": "A",
"name": "@",
"value": "192.0.2.1",
"ttl": 3600,
"priority": null,
"created_at": "2024-01-15T10:30:00Z"
},
{
"uuid": "rec-002",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2024-01-15T10:32:00Z"
}
]
}
Javob holati kodlari
200
Successfully retrieved zone details
404
Zone not found or not owned by user
DNS зонасини яратиш
Домен учун янги DNS зонасини яратинг. Зона VPS.org ном серверларига тезда ўрнатилади.
Tana parametrlarini so'rash
Парамeтрлар
Turi
Majburiy
Тасвирлаш
domain
string
Ha
Domain name (e.g., example.com)
Namunaviy so'rov
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domain": "newdomain.com"}'
Нусха олиш
import requests
url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {"domain": "newdomain.com"}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Нусха олиш
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({domain: 'newdomain.com'})
});
const zone = await response.json();
console.log(zone);
Нусха олиш
Javob namunasi
{
"uuid": "new-zone-uuid",
"domain": "newdomain.com",
"created_at": "2026-01-18T16:45:00Z",
"record_count": 0,
"records": []
}
Javob holati kodlari
201
DNS zone created successfully
400
Bad Request - Invalid domain name or zone already exists
403
Forbidden - Token lacks dns:create permission
DNS зонасини ўчириб ташлаш
DNS зонаси ва унга боғлиқ барча ёзувларни доимий равишда ўчириб ташлаш. Бу ишга қайтиб бўлмас.
Yo'l parametrlari
Парамeтрлар
Turi
Majburiy
Тасвирлаш
uuid
string
Ha
Unique zone identifier
Javob holati kodlari
204
Zone deleted successfully (no response body)
403
Forbidden - Token lacks dns:delete permission
404
Zone not found
Зонада DNS ёзувлар рўйхати
Маълум бир зона учун барча DNS ёзувларни олиш (ўйилган йўл).
Yo'l parametrlari
Парамeтрлар
Turi
Majburiy
Тасвирлаш
uuid
string
Ha
Zone UUID
Namunaviy so'rov
curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Javob namunasi
[
{
"uuid": "rec-001",
"record_type": "A",
"name": "@",
"value": "192.0.2.1",
"ttl": 3600,
"priority": null,
"created_at": "2024-01-15T10:30:00Z"
},
{
"uuid": "rec-002",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2024-01-15T10:32:00Z"
}
]
Зонада DNS ёзувни яратиш
Янги DNS ёзувни белгиланган зонага (ўйилган йўл) қўшиш.
Tana parametrlarini so'rash
Парамeтрлар
Turi
Majburiy
Тасвирлаш
record_type
string
Ha
Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name
string
Ha
Record name (@ for root, subdomain, or FQDN)
value
string
Ha
Record value (IP address, hostname, text)
ttl
integer
No
Time to live in seconds (default: 3600)
priority
integer
For MX/SRV
Priority (required for MX and SRV records)
Namunaviy so'rov
curl -X POST "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"record_type": "A",
"name": "www",
"value": "192.0.2.1",
"ttl": 3600
}'
Нусха олиш
import requests
url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"record_type": "A",
"name": "www",
"value": "192.0.2.1",
"ttl": 3600
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Нусха олиш
Javob holati kodlari
201
DNS record created successfully
400
Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
DNS ёзувларни бошқариш (тўғридан-тўғри кириш)
Запись UUID'дан фойдаланиб, индивидуал DNS ёзувларига тўлиқ CRUD операциялари.
Амалдорлар
GET /api/v1/dns-records/{uuid}/ - Retrieve record details
PUT /api/v1/dns-records/{uuid}/ - Full update (all fields required)
PATCH /api/v1/dns-records/{uuid}/ - Partial update (only changed fields)
DELETE /api/v1/dns-records/{uuid}/ - Delete record
Сўров параметрлари (GET /api/v1/dns-records/ учун)
Parameter
Turi
Тасвирлаш
zone
string
Filter records by zone UUID
record_type
string
Filter by record type (A, AAAA, MX, etc.)
Мисол: ёзувнинг TTL'ини янгилаш
curl -X PATCH "https://admin.vps.org/api/v1/dns-records/{rec-uuid}/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ttl": 1800}'
Supported DNS Record Types
Turi
Purpose
Example Value
Priority Required
A
Maps domain to IPv4 address
192.0.2.1
Йўқ
AAAA
Maps domain to IPv6 address
2001:0db8::1
Йўқ
CNAME
Creates alias to another domain
example.com
Йўқ
MX
Mail server for domain
mail.example.com
Ha
TXT
Text record (SPF, DKIM, verification)
v=spf1 include:_spf.google.com ~all
Йўқ
NS
Nameserver delegation
ns1.example.com
Йўқ
SRV
Service location record
10 5060 sip.example.com
Ha
CAA
Certificate authority authorization
0 issue "letsencrypt.org"
Йўқ
Энг яхши амалиётлар
TTL созлаши
Производство (стабиль): 3600-86400 секунд (1-24 соат)
Ўтишдан олдин: 300-600 секунд (5-10 дақиқа) - ТТЛни режалаштирилган ўзгаришлардан олдин пасайтириш
Тараққиёт: 300-1800 секунд (5-30 дақиқа) тезроқ синаш учун
Умумлаштирилган намуналар
Талаб қилинган домен (@): CNAME эмас, A/AAAA ёзувлари қўллансин
www субдомени: CNAME га асосланган ёки ажратилган A-рекордга ишора қилиш мумкин
Эл. почта (MX): Ҳар доим устуворликни киритиш, кичик рақам = юқори устуворлик
CNAME: Бир хил номдаги бошқа ёзув турлари билан биргаликда мавжуд бўла олмайди
Хавфсизлик
CAA ёзувлари: Сертификатларни чиқара оладиган CAларни кўрсатинг
SPF/DKIM/DMARC: Соффингдан сақланиш учун электрон почта аутентификациясини созлаш
Доимий аудит: Ҳар чоракда DNS ёзувларни кўриб чиқиш, фойдаланилмаётган ёзувларни олиб ташлаш
Хатоларни бошқариш
Кўп учрайдиган хатолар
Holat kodi
Хато
Ҳисоблаш
400
Нодуруст домен номи
Домен DNS номлаш қоидаларига риоя қилишини текшириш
400
MX ёзуви учун устуворлик талаб этилади
Қўшиш priority MX ва SRV ёзувлари учун майдон
401
Нолойиқ API токен
Текшириш токенининг формати (бошланиши керак) vps_)
403
Ҳуқуқ йўқ
Янги токенни талаб қилинадиган билан яратиш dns:* рухсатлар
404
Зона/рекорд топилмади
UUID'ни текширинг ва ресурс сизнинг ҳисобингизга тегишли эканига ишонч ҳосил қилинг
Хато жавоби мисоли
{
"detail": "MX records require a priority value",
"error_code": "validation_error",
"field": "priority"
}
DNS ўзгаришлари синовдан ўтказилмоқда
Рекорд тарқалишини текшириш
# Query A record
dig example.com A
# Query specific nameserver
dig @ns1.vps.org example.com
# Query MX records
dig example.com MX
# Check all records
dig example.com ANY
Онлайн асбоблардан фойдаланиш
whatsmydns.net: Check global DNS propagation
dnschecker.org: Multi-location DNS lookup
mxtoolbox.com: Email-related DNS testing