VPS.org API

Дакументацыя па REST API

API кіравання DNS

Кіруйце DNS-зонамі і запісамі праграмна для вашых даменаў.

Канчатковыя кропкі 4 канчатковыя кропкі
Базавы шлях /api/v1/dns-zones
Аўтэнтыфікацыя Неабходны знак носителя

Агляд

DNS API забяспечвае поўнае кіраванне DNS- зонамі і запісамі. Усе зоны знаходзяцца на аўтарытэтных серверах імёнаў VPS.org з аўтаматычным стварэннем і разгортваннем файлаў зон BIND9.

Інфраструктура сервера імёнаў

Ключавыя магчымасці

Аўтэнтыфікацыя

Усе запыты DNS API патрабуюць аўтэнтыфікацыі з дапамогай токенаў носьбіта. Стварыце токены API з панэлі кіравання вашага рахунку на /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-серверы адпраўляюцца ў 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

Інструменты ў сеціве