VPS.org API

REST API დოკუმენტაცია

DNS მართვის API

პროგრამულად მართეთ 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 ჩანაწერების მართვა (პირდაპირი წვდომა) Name

ოფიციალური საიტი ↑ 2008-06-01. ↑ Full CRUD operations on individual DNS records using record UUID.

ხელმისაწვდომი ოპერაციები

პარამეტრები

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

ონლაინ ხელსაწყოების გამოყენება