VPS.org API

REST API құжаттамасы

DNS басқару API

Домендеріңіз үшін DNS аймақтары мен жазбаларын бағдарламалық түрде басқарыңыз.

Соңғы нүктелер 4 соңғы нүкте
Негізгі жол /api/v1/dns-zones
Аутентификация Носительдің токені керек

Шолу

DNS API DNS аймақтарды және жазбаларды толық басқаруға мүмкіндік береді. Барлық аймақтарды VPS.org- дің рұқсат етілген атау серверлері автоматты түрде BIND9 аймақ файлдарын құрып, орналастырады.

Атау серверінің құрылымы

Басты мүмкіндіктері

Аутентификация

Барлық DNS API сұраныстары Bearer token аутентификациясын талап етеді. API token- дарын тіркелгіңіздің панелінен құрыңыз /account/developers/ келесі рұқсаттармен:

Мысал

Authorization: Bearer vps_abc123def456...
Маңызды: API токендері құру кезінде бір рет ғана көрсетіледі. Оларды қауіпсіз жерде сақтаңыз. Егер бір токен жоғалып кетсе, жаңасын құру керек.
АЛУ /api/v1/dns-zones/

Барлық DNS аймақтарының тізімін жасаңыз

Аутентификацияланған пайдаланушыға тиесілі барлық DNS аймақтарының беттік тізімін алу. Доменнің атауы бойынша сүзгілеу қолдау табады.

Сұрау параметрлері

Параметрлер Түрі Қажетті Сипаттамасы
domain string Жоқ Filter zones by exact domain name (e.g., example.com)

Мысал сұрау

cURL
Python
JavaScript
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
АЛУ /api/v1/dns-zones/{uuid}/

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
ХАБАРЛАМА /api/v1/dns-zones/

DNS аймағын құру

Домен үшін жаңа DNS аймағын құру. Аумақ бірден VPS.org атау серверіне орналастырылады.

Сұрау мәтінінің параметрлері

Параметрлер Түрі Қажетті Сипаттамасы
domain string Иә Domain name (e.g., example.com)

Мысал сұрау

cURL
Python
JavaScript
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
ЖОЮ /api/v1/dns-zones/{uuid}/

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
АЛУ /api/v1/dns-zones/{uuid}/records/

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"
  }
]
ХАБАРЛАМА /api/v1/dns-zones/{uuid}/records/

Аумақта 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
Python
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)
GET PUT PATCH DELETE /api/v1/dns-records/{uuid}/

DNS жазуларын басқару (түсіндіру)

Бірнеше DNS жазуларына арналған толық CRUD операциялары, жазу UUID- ін қолдана отырып.

Қол жеткізер әрекеттер

Сұраныстың параметрлері (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 баптаулары

Жалпы үлгілер

Қауіпсіздік

Қателерді өңдеу

Жалпы қателер

Күй коды Қате Қалыпты
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

Желідегі құралдарды қолдану