VPS.org API

Tài liệu API REST

API quản lý DNS

Quản lý các vùng và bản ghi DNS một cách lập trình cho các tên miền của bạn.

Điểm cuối 4 điểm cuối
Đường cơ sở /api/v1/dns-zones
Xác thực Cần token người mang

Tổng quan

API DNS cung cấp quản lý đầy đủ các vùng và ghi chú DNS. Tất cả các vùng được lưu trữ trên máy chủ tên có thẩm quyền của VPS.org với việc tạo và triển khai tập tin vùng BIND9 tự động.

Hệ thống máy phục vụ tên

Tính năng chính

Xác thực

Tất cả yêu cầu API DNS cần xác thực token Bearer. Tạo token API từ bảng điều khiển tài khoản của bạn tại /account/developers/ với quyền sau:

Ví dụ

Authorization: Bearer vps_abc123def456...
Quan trọng: Các ký hiệu API chỉ được hiển thị một lần trong quá trình tạo. Bảo quản chúng an toàn. Nếu bạn mất một ký hiệu, bạn phải tạo một cái mới.
LẤY /api/v1/dns-zones/

Liệt kê tất cả các vùng DNS

Lấy danh sách các vùng DNS thuộc về người dùng đã xác thực. Hỗ trợ lọc theo tên miền.

Tham số truy vấn

Tham số Kiểu Yêu cầu Mô tả
domain string Không Filter zones by exact domain name (e.g., example.com)

Ví dụ về yêu cầu

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);

Ví dụ về câu trả lời

[
  {
    "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
  }
]

Các trường phản hồi

Địa điểm Kiểu Mô tả
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

Mã trạng thái phản hồi

200 Successfully retrieved DNS zones list
401 Unauthorized - Invalid or missing API token
403 Forbidden - Token lacks dns:list permission
LẤY /api/v1/dns-zones/{uuid}/

Lấy chi tiết khu vực DNS

Lấy thông tin chi tiết về một khu vực DNS cụ thể, bao gồm tất cả các ghi chép.

Tham số đường dẫn

Tham số Kiểu Yêu cầu Mô tả
uuid string Đúng Unique zone identifier

Ví dụ về câu trả lời

{
  "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"
    }
  ]
}

Mã trạng thái phản hồi

200 Successfully retrieved zone details
404 Zone not found or not owned by user
POST /api/v1/dns-zones/

Tạo khu vực DNS

Tạo một vùng DNS mới cho một miền. Khu vực này sẽ được triển khai ngay lập tức cho VPS.org máy phục vụ tên.

Các tham số thân yêu cầu

Tham số Kiểu Yêu cầu Mô tả
domain string Đúng Domain name (e.g., example.com)

Ví dụ về yêu cầu

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);

Ví dụ về câu trả lời

{
  "uuid": "new-zone-uuid",
  "domain": "newdomain.com",
  "created_at": "2026-01-18T16:45:00Z",
  "record_count": 0,
  "records": []
}

Mã trạng thái phản hồi

201 DNS zone created successfully
400 Bad Request - Invalid domain name or zone already exists
403 Forbidden - Token lacks dns:create permission
XÓA BỎ /api/v1/dns-zones/{uuid}/

Xoá vùng DNS

Xoá vĩnh viễn vùng DNS và tất cả các ghi chép liên quan. Hành động này không thể được hủy bỏ.

Tham số đường dẫn

Tham số Kiểu Yêu cầu Mô tả
uuid string Đúng Unique zone identifier

Mã trạng thái phản hồi

204 Zone deleted successfully (no response body)
403 Forbidden - Token lacks dns:delete permission
404 Zone not found
LẤY /api/v1/dns-zones/{uuid}/records/

Danh sách các ghi DNS trong khu vực

Lấy tất cả các ghi chú DNS cho một khu vực cụ thể (lối đi lồng).

Tham số đường dẫn

Tham số Kiểu Yêu cầu Mô tả
uuid string Đúng Zone UUID

Ví dụ về yêu cầu

curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ví dụ về câu trả lời

[
  {
    "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"
  }
]
POST /api/v1/dns-zones/{uuid}/records/

Tạo ghi DNS trong vùng

Thêm một ghi chú DNS mới cho một khu vực cụ thể (đường lưới).

Các tham số thân yêu cầu

Tham số Kiểu Yêu cầu Mô tả
record_type string Đúng Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Đúng Record name (@ for root, subdomain, or FQDN)
value string Đúng 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)

Ví dụ về yêu cầu

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())

Mã trạng thái phản hồi

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}/

Quản lý ghi chú DNS (tạo trực tiếp)

Hoạt động CRUD đầy đủ trên các ghi chú DNS cá nhân sử dụng UUID ghi.

Hoạt động có sẵn

Tham số truy vấn (cho GET /api/v1/dns-records/)

Parameter Kiểu Mô tả
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

Ví dụ: Cập nhật TTL của một ghi chú

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

Kiểu Purpose Example Value Priority Required
A Maps domain to IPv4 address 192.0.2.1 Không
AAAA Maps domain to IPv6 address 2001:0db8::1 Không
CNAME Creates alias to another domain example.com Không
MX Mail server for domain mail.example.com Đúng
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all Không
NS Nameserver delegation ns1.example.com Không
SRV Service location record 10 5060 sip.example.com Đúng
CAA Certificate authority authorization 0 issue "letsencrypt.org" Không

Thực hành tốt nhất

Cấu hình TTL

Mẫu chung

An ninh

Xử lý lỗi

Lỗi phổ biến

Mã trạng thái Lỗi Hiệu ứng
400 Tên miền không hợp lệ Đảm bảo miền tuân theo quy ước đặt tên DNS
400 Ghi chú MX cần ưu tiên Gồm priority trường cho các ghi chú MX và SRV
401 Mã API không hợp lệ Định dạng ký hiệu kiểm tra (phải bắt đầu với vps_)
403 Thiếu quyền Tạo token mới với yêu cầu dns:* quyền
404 Không tìm thấy khu vực/kỷ lục Kiểm tra UUID và đảm bảo tài nguyên thuộc về tài khoản của bạn

Trả lời lỗi ví dụ

{
  "detail": "MX records require a priority value",
  "error_code": "validation_error",
  "field": "priority"
}

Thử nghiệm thay đổi DNS

Kiểm tra sự lan truyền ghi chú

# 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

Dùng công cụ trực tuyến