VPS.org API

REST 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 Records (директен достъп)

Пълни операции 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

Използване на онлайн инструменти