VPS.org API

API- документација

API за управување со DNS

Управувајте со DNS зони и записи програмски за вашите домени.

Крајни точки 4 крајни точки
Основна патека /api/v1/dns-zones
Автентикација Потребен е носачот

Преглед

DNS API обезбедува целосен менаџмент на DNS зони и записи. Сите зони се домаќини на VPS.org авторитетни сервери со имиња со автоматска генерација и распоредување на датотеки во зоната BIND9.

Инфраструктура на серверот со имиња

Клучни карактеристики

Автентикација

Сите барања за DNS API бараат автентичност на Bearer tokena. Генерирајте 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 записи (директен пристап)

Комплетни операции на CRUD на индивидуалните DNS записи со користење на записот UUID.

Достапни операции

Параметри за испрашување (за GET / api/ v1/ dns- записи /)

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

Користење онлајн алатки