VPS.org API

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

DNS басқару API

DNS аймақтарды құрып, олардың жазуларын басқару. Аймақтарға ns1. vps.org, ns2. vps.org және ns3. vps.org қызмет етеді.

Соңғы нүктелер 13
Негізгі жол /api/v1/dns-zones, /api/v1/dns-records

Шолу

A zone holds the records for one domain. Every change you make through the API is pushed to the VPS.org nameservers straight away. To serve a domain from these zones, set its nameservers at your registrar to ns1.vps.org, ns2.vps.org and ns3.vps.org.

Өзгерістер бір қадамда сақталып жарияланады: атау серверлері өзгерістерді қабылдамаса, сұрау 502 деген қате белгісін қайтарып, ештеңе сақталмайды. Аумақ басқа тіркелгі басқаратын домен үшін, басқа тіркелгінің аталық немесе ұрпақ аумағы үшін, немесе VPS.org деген резервтеу атауы үшін құрылмайды.

Рұқсат керек: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

АЛУ /api/v1/dns-zones/

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

Жаңасы алдыңғы, бір бетке 25- те аймақтарды қайтарады. Жазбалар мұнда кірмейді, оларды алу үшін бір аймақпен шектеліңіз.

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

Параметрлер Түрі Қажетті Сипаттамасы
domain string Жоқ Тек осы доменнің атауымен аймақ қайтарылсын
page integer Жоқ Бет нөмірі, 1- ден басталады

Мысал сұрау

cURL
Python
JavaScript
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 токені жоқ немесе жарамсыз, немесе токеннің қажетті рұқсаты жоқ
ХАБАРЛАМА /api/v1/dns-zones/

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

Аумақ құрып, оны жариялау. Аумақ ns1, ns2 және ns3. vps.org үшін үш NS жазуынан басталады, бұл жүйелік жазулар, оларды өзгерту не өшіру мүмкін емес.

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

Параметрлер Түрі Қажетті Сипаттамасы
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 Доменнің атауы жоқ не жарамсыз
АЛУ /api/v1/dns-zones/{uuid}/

DNS аймағы туралы мәліметті алу

Бір аймақ пен оның барлық жазбаларын жазбалар жиынтығы ретінде қайтарады. Жауап жоғарыдағы create дегенге ұқсас.

curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Жауап күйінің кодтары

200 Сәтті
404 Табылмады, немесе басқа тіркелгіге тиесілі
ЖОЮ /api/v1/dns-zones/{uuid}/

DNS аймағын өшіру

Үш атау серверінен де аймақты алып тастау, әлі де қызмет көрсететінін тексеру, содан кейін аймақ пен оның жазуларын өшіру. Егер атау сервері аймақ үшін жауап берсе, сұрау жаңылысып, аймақ қайталап көру үшін сақталады.

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 Табылмады, немесе басқа тіркелгіге тиесілі
АЛУ ХАБАРЛАМА /api/v1/dns-zones/{uuid}/records/

Аумақтағы жазуларды тізімдеу не қосу

GET деген өрістің барлық жазбаларын түрі мен атауы бойынша реттелген, қарапайым жиын ретінде қайтарады. POST деген өріске жазбаны қосып, оны жариялайды.

Сұрау мәтінінің параметрлері (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
Python
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/ аяқтау нүктелерінде қолданылады
priority integer | null MX және SRV жазуларының артықшылығы, әйтпесе нөл
created_at date Құру күні ғана (Y- MM- DD), уақытсыз

Жауап күйінің кодтары

200 GET: аймақтың жазулары
201 POST: жазба құрылды
400 Тексеру қатесі, мысалы, беймәлім жазу түрі, жоқ ttl, немесе артықшылығы жоқ MX не SRV жазуы
404 Табылмады, немесе басқа тіркелгіге тиесілі
ХАБАРЛАМА /api/v1/dns-zones/{uuid}/sync/

Аумақта қайта жариялау

Аумақтағы барлық жазуларды атау серверлеріне қайта жіберу. Жазудың өзгерістері автоматты түрде жарияланады, бірақ жариялау ең жақсысы, яғни қателік бастапқы сұранысты орындауға кедергі келтірмейді, сондықтан өзгерістер 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"
}
АЛУ ХАБАРЛАМА /api/v1/dns-records/

Облыстар арасында тізім немесе жазулар жасау

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 жоқ немесе бір аймағыңыз емес
АЛУ PUT PATCH ЖОЮ /api/v1/dns-records/{uuid}/

Жазбаны алу, жаңарту не өшіру

GET бір жазбаны қайтарады. PUT оны ауыстырады және record_ type, name, value және ttl дегендерді қажет етеді. PATCH тек жіберген өрістерді өзгертеді. DELETE жазбаны алып тастап, 204 дегенді қайтарады. Өзгерістер бірден жарияланады. Аумақта жасалған NS жазбалар жүйелік жазбалар: оларды жаңарту немесе өшіру 403 дегенді қайтарады.

MX не SRV жазудың артықшылығын PATCH жасағанда, record_ type дегенді де сол сұрауында жіберіңіз. PATCH- тың артықшылығы бар, бірақ record_ type дегені жоқ бөлігі артықшылығын жояды.
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"]
}

DNS өзгерістерін сынау

Регистратордың өкілеттігін беру немесе шешу кэштерін іздеу алдында өзгеріс тіркелгенін тексеру үшін VPS.org атау серверлеріне тікелей сұрау салу:

dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com