VPS.org API

Документация REST API

API управления DNS

Управляйте зонами и записями DNS для ваших доменов программным способом.

Конечные точки 4 конечные точки
Базовый путь /api/v1/dns-zones
Аутентификация Требуются токены

Обзор

DNS API обеспечивает полное управление зонами и записями DNS. Все зоны размещены на авторитетных серверах VPS.org с автоматическим созданием и внедрением файлов зон BIND9.

Инфраструктура < < Имя сервера > >

Основные характеристики

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

Все запросы DNS API требуют аутентификации символа Bearer. Выделите символы 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

Найдите подробную информацию о конкретной зоне ДНС, включая все записи.

Параметры пути

Параметр Тип Необходимый Описание
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 ( " Direct Access " )

Полные операции CRUD по отдельным записям DNS с использованием рекордного UUID.

Имеющиеся операции

Запрашиваемые параметры (для GET/api/v1/dns-cords/)

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 и SPV
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

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