Шолу
DNS API DNS аймақтарды және жазбаларды толық басқаруға мүмкіндік береді. Барлық аймақтарды VPS.org- дің рұқсат етілген атау серверлері автоматты түрде BIND9 аймақ файлдарын құрып, орналастырады.
Атау серверінің құрылымы
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 аймақ файлын құру және орналастыру
Аудан аутентификациясы арқылы ауысады (басшы- бағынышты репликациясы)
Барлық негізгі DNS жазу түрлерін қолдау (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)
Домен атауын сүзгілеу және UUID- негіздеген аймақ идентификациясы
Аумақтарға тән жазбаларды басқару үшін ендірілген жолдар
Аутентификация
Барлық DNS API сұраныстары Bearer token аутентификациясын талап етеді. API token- дарын тіркелгіңіздің панелінен құрыңыз /account/developers/ келесі рұқсаттармен:
dns:list - DNS аймақтары мен жазбаларын қарау
dns:create - Жаңа аймақ пен жазуларды құру
dns:update - Бар аймақ пен жазуларды өзгерту
dns:delete - Аумақ пен жазуларды өшіру
dns:* - DNS- ті басқаруға толық құқығы
Мысал
Authorization: Bearer vps_abc123def456...
Маңызды: API токендері құру кезінде бір рет ғана көрсетіледі. Оларды қауіпсіз жерде сақтаңыз. Егер бір токен жоғалып кетсе, жаңасын құру керек.
Барлық DNS аймақтарының тізімін жасаңыз
Аутентификацияланған пайдаланушыға тиесілі барлық DNS аймақтарының беттік тізімін алу. Доменнің атауы бойынша сүзгілеу қолдау табады.
Сұрау параметрлері
Параметрлер
Түрі
Қажетті
Сипаттамасы
domain
string
Жоқ
Filter zones by exact domain name (e.g., example.com)
Мысал сұрау
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);
Көшіру
Мысал жауап
[
{
"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
}
]
Жауап өрістері
Өріс
Түрі
Сипаттамасы
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
Жауап күйінің кодтары
200
Successfully retrieved DNS zones list
401
Unauthorized - Invalid or missing API token
403
Forbidden - Token lacks dns:list permission
DNS аймағы туралы мәліметті алу
Келтірілген DNS аймағы туралы егжей- тегжейлі мәліметті, оның ішінде барлық жазбаларды алу.
Жол параметрлері
Параметрлер
Түрі
Қажетті
Сипаттамасы
uuid
string
Иә
Unique zone identifier
Мысал жауап
{
"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"
}
]
}
Жауап күйінің кодтары
200
Successfully retrieved zone details
404
Zone not found or not owned by user
DNS аймағын құру
Домен үшін жаңа DNS аймағын құру. Аумақ бірден VPS.org атау серверіне орналастырылады.
Сұрау мәтінінің параметрлері
Параметрлер
Түрі
Қажетті
Сипаттамасы
domain
string
Иә
Domain name (e.g., 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": "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);
Көшіру
Мысал жауап
{
"uuid": "new-zone-uuid",
"domain": "newdomain.com",
"created_at": "2026-01-18T16:45:00Z",
"record_count": 0,
"records": []
}
Жауап күйінің кодтары
201
DNS zone created successfully
400
Bad Request - Invalid domain name or zone already exists
403
Forbidden - Token lacks dns:create permission
DNS аймағын өшіру
DNS аймағын және оның барлық жазбаларын мәңгі өшіру. Бұл әрекеттен қайтуға болмайды.
Жол параметрлері
Параметрлер
Түрі
Қажетті
Сипаттамасы
uuid
string
Иә
Unique zone identifier
Жауап күйінің кодтары
204
Zone deleted successfully (no response body)
403
Forbidden - Token lacks dns:delete permission
404
Zone not found
DNS жазуларын аймақта тізімдеу
Келтірілген аймақтың (ішкі жолдың) барлық DNS жазуларын алу.
Жол параметрлері
Параметрлер
Түрі
Қажетті
Сипаттамасы
uuid
string
Иә
Zone UUID
Мысал сұрау
curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Мысал жауап
[
{
"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 жазуын қосу.
Сұрау мәтінінің параметрлері
Параметрлер
Түрі
Қажетті
Сипаттамасы
record_type
string
Иә
Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name
string
Иә
Record name (@ for root, subdomain, or FQDN)
value
string
Иә
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)
Мысал сұрау
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())
Көшіру
Жауап күйінің кодтары
201
DNS record created successfully
400
Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
DNS жазуларын басқару (түсіндіру)
Бірнеше DNS жазуларына арналған толық CRUD операциялары, жазу UUID- ін қолдана отырып.
Қол жеткізер әрекеттер
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
Түрі
Сипаттамасы
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
Түрі
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
Иә
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
Иә
CAA
Certificate authority authorization
0 issue "letsencrypt.org"
Жоқ
Ең жақсы тәжірибелер
TTL баптаулары
Өндірістік (стабилді): 3600- 86400 секунд (1- 24 сағат)
Көшірмелеу алдында: 300- 600 секунд (5- 10 минут) - жоспарланған өзгерістерден бұрын TTL- ді төмендету
Жасау: 300- 1800 секунд (5- 30 минут) жылдам сынау үшін
Жалпы үлгілер
Түбір домен (@): CNAME емес, A/ AAAA жазулар қолданылсын
www субдомені: CNAME- дің тамырға немесе бөлек A жазуына сілтемесін қолдануға болады
Эл. пошта (MX): Әрқашан артықшылығы қосылсын, төменгі сан = жоғары артықшылығы
CNAME: Бір атау үшін басқа жазу түрлерімен бір уақытта болуы мүмкін емес
Қауіпсіздік
CAA жазулары: Куәліктерді шығара алатын куәлік берушілерді келтіріңіз
SPF/DKIM/DMARC: Эл. пошта аутентификациясын жалғандықтан қорғау үшін баптауName
Қалыпты тексерулер: DNS жазбаларын тоқсан сайын тексеру, қолданбаған жазуларды өшіру
Қателерді өңдеу
Жалпы қателер
Күй коды
Қате
Қалыпты
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