DNS ზონების შექმნა და მათი ჩანაწერების მართვა. ზონები მომსახურება ns1. vps.org, ns2. vps.org და ns3. vps.org.
ზონა ერთ დომენს იკავებს. ყველა ცვლილება, რომელიც API- ს მეშვეობით გაქვთ შეტანილი, მყისიერად გადაეგზავნება VPS.org სახელის სერვერებს. დომენის ამ ზონებისგან მომსახურებისთვის, მისი სახელის სერვერების რეგისტრატორის მიერ დაყენება ns1. vps.org, ns2. vps.org და ns3. vps.org.
ცვლილებების შენახვა და გამოქვეყნება ხდება ერთ ნაბიჯში: თუ სახელის სერვერები ცვლილებებს უარყოფენ, მოთხოვნა 502- ს იძლევა და არაფერი ინახება. ზონა არ შეიძლება შექმნილი იყოს დომენისთვის, რომელიც უკვე სხვა ანგარიშს მართავს, სხვა ანგარიშის ზონის მშობელი ან შვილობილი, ან VPS.org- ის რეზერვირებული სახელი.
საჭიროა უფლება:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
უბრუნებს თქვენს ზონებს, ახალი პირველი, 25 გვერდზე. ჩანაწერები აქ არ შედის; მათი მისაღებად ერთი ზონა მიიღეთ.
| პარამეტრები | ტიპი | სავალდებულო | აღწერა |
|---|---|---|---|
domain |
string | ნვ, ნვ ჟყმ. | მხოლოდ ზონის დაბრუნება, რომელიც ზუსტად ამ დომენის სახელს ატარებს |
page |
integer | ნვ, ნვ ჟყმ. | გვერდის ნომერი, 1- დან დაწყებული |
curl -X GET "https://admin.vps.org/api/v1/dns-zones/?domain=example.com" \
-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, params={"domain": "example.com"})
for zone in response.json()["results"]:
print(zone["uuid"], zone["domain"], zone["record_count"])
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/?domain=example.com', {
headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});
const data = await response.json();
console.log(data.results);
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c",
"domain": "example.com",
"created_at": "2026-09-06T03:11:48.829693Z",
"record_count": 5
}
]
}
| ველი | ტიპი | აღწერა |
|---|---|---|
uuid |
string | ზონა |
domain |
string | დომენის სახელი, პატარა ასოებით |
created_at |
datetime | შექმნის დრო (ISO 8601, UTC) |
record_count |
integer | არეებში ჩაწერილი ჩანაწერების რაოდენობა, მათ შორის სამი NS ჩანაწერი |
| 200 | წარმატება |
| 403 | API ტოკენი არ არის ან არასწორია, ან ტოკენს არ აქვს საჭირო უფლება |
ქმნის ზონას და გამოსცემს მას. ზონა იწყება სამი NS ჩანაწერით ns1, ns2 და ns3. vps.org- ისთვის, რომლებიც სისტემური ჩანაწერებია და ვერ იცვლება ან იკარგება.
| პარამეტრები | ტიპი | სავალდებულო | აღწერა |
|---|---|---|---|
domain |
string | დიახ | დომენის სახელი, მაგალითად example. com |
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com"}'
{
"uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c",
"domain": "example.com",
"created_at": "2026-09-14T21:02:11.402113Z",
"records": [
{
"uuid": "1f2e3d4c-5b6a-4978-8a9b-0c1d2e3f4a5b",
"record_type": "NS",
"name": "@",
"value": "ns1.vps.org",
"ttl": 86400,
"priority": null,
"created_at": "2026-09-14"
},
...
],
"record_count": 3
}
| 201 | შექმნილია ზონა |
| 400 | დომენის სახელი არ არის |
Returns one zone with all of its records in a records array. The response has the same shape as the create response above.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | წარმატება |
| 404 | ვერ მოიძებნა, ან სხვა ანგარიშს ეკუთვნის |
არე ყველა სამ სახელის სერვერიდან ამოიღებს, შეამოწმებს, რომ არცერთი მათგანი არ ემსახურება მას და შემდეგ წაშლის არესა და მის ჩანაწერებს. თუ სახელის სერვერი კვლავ პასუხობს არეზე, მოთხოვნა ვერ შესრულდება და არე დარჩება, რათა თქვენ კვლავ შეძლოთ მისი შეცვლა.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Deleted. The response has no body. |
| 400 | სახელის სერვერი ჯერ კიდევ ემსახურება ზონას. ზონა არ წაიშალა; დეტალური ველი შეიცავს შეცდომებს. |
| 404 | ვერ მოიძებნა, ან სხვა ანგარიშს ეკუთვნის |
GET უკან ბრუნავს ყველა ჩანაწერს ზონაში როგორც ჩვეულებრივი მასივი (არ არის გვერდები), დაწყობილი ტიპის და სახელის მიხედვით. POST ამატებს ჩანაწერს ზონას და გამოსცემს მას.
| პარამეტრები | ტიპი | სავალდებულო | აღწერა |
|---|---|---|---|
record_type |
string | დიახ | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | დიახ | @ დომენის სახელისთვის ან ჭდე, როგორიცაა www. სახელები პატარა ასოებით ინახება. |
value |
string | დიახ | ელემენტის მონაცემები, მაგალითად IP მისამართი ან ჰოსტის სახელი. ჰოსტის სახელებს არ სჭირდებათ ბოლო წერტილი და TXT მნიშვნელობებს არ სჭირდებათ ღია აბზაცები; ორივე დამატებული იქნება ელემენტის გამოქვეყნებისას. |
ttl |
integer | დიახ | დრო, რომ გაგრძელდეს ცხოვრება |
priority |
integer | მხოლოდ MX და SRV | საჭიროა MX და SRV ჩანაწერებისთვის და იგნორირდება ყველა სხვა ტიპისთვის. SRV- სთვის, მნიშვნელობაში ჩაწერეთ წონა, პორტი და მიზანი. |
curl -X POST "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"record_type": "MX", "name": "@", "value": "mail.example.com", "ttl": 3600, "priority": 10}'
import requests
zone_uuid = "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c"
url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {"record_type": "A", "name": "www", "value": "203.0.113.10", "ttl": 3600}
response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json())
{
"uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2026-09-14"
}
| ველი | ტიპი | აღწერა |
|---|---|---|
uuid |
string | ჩანაწერის იდენტიფიკატორი, რომელსაც /api/v1/dns-records/ დასასრული იყენებს |
priority |
integer | null | MX და SRV ჩანაწერების პრიორიტეტი, სხვა შემთხვევაში ნული |
created_at |
date | მხოლოდ შექმნის თარიღი (Y- MM- DD), დროის გარეშე |
| 200 | GET: ზონაზე ჩანაწერები |
| 201 | POST: შექმნილია ჩანაწერი |
| 400 | დამოწმების შეცდომა, მაგალითად უცნობი ჩანაწერის ტიპი, ttl- ს არარსებობა, ან MX ან SRV ჩანაწერი პრიორიტეტის გარეშე |
| 404 | ვერ მოიძებნა, ან სხვა ანგარიშს ეკუთვნის |
ზონას და ყველა მის ჩანაწერს სახელის სერვერებზე ისევ ატვირთავს. ჩანაწერის ცვლილებები ავტომატურად გამოქვეყნდება, მაგრამ გამოქვეყნება საუკეთესოა და შეცდომა არ უშლის ხელს საწყის მოთხოვნას, ამიტომ გამოიყენეთ ეს, როდესაც ცვლილება არ გამოჩნდება DNS- ში. მოთხოვნის სხეული არ არის საჭირო.
curl -X POST "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/sync/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"detail": "Zone example.com synced to PowerDNS"
}
GET უკან ბრუნავს ყველა ზონის ჩანაწერებს, 25 გვერდზე, დომენის, ტიპისა და სახელის მიხედვით დაწყობილს. POST ქმნის ჩანაწერს, როგორც ზონის ჩანაწერების დასასრული, მაგრამ იღებს ზონას როგორც zone_ uuid.
| პარამეტრები | ტიპი | სავალდებულო | აღწერა |
|---|---|---|---|
zone |
string | ნვ, ნვ ჟყმ. | მხოლოდ ამ uuid- ით ზონაში ჩაწერილი ჩანაწერები |
record_type |
string | ნვ, ნვ ჟყმ. | მხოლოდ ამ ტიპის ჩანაწერები, მაგალითად MX (რეგისტრის გათვალისწინებით) |
page |
integer | ნვ, ნვ ჟყმ. | გვერდის ნომერი, 1- დან დაწყებული |
curl -X GET "https://admin.vps.org/api/v1/dns-records/?zone=c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c&record_type=A" \
-H "Authorization: Bearer YOUR_API_TOKEN"
curl -X POST "https://admin.vps.org/api/v1/dns-records/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"zone_uuid": "c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c", "record_type": "TXT", "name": "@", "value": "v=spf1 mx -all", "ttl": 3600}'
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "4b8e2c10-7d3f-4a5b-9e6c-1a2b3c4d5e6f",
"record_type": "A",
"name": "www",
"value": "203.0.113.10",
"ttl": 3600,
"priority": null,
"created_at": "2026-09-14"
}
]
}
| 200 | GET: წარმატება |
| 201 | POST: შექმნილია ჩანაწერი |
| 400 | დამოწმების შეცდომა, ან zone_ uuid არ არის ან არ არის თქვენი ზონა |
GET უკან იტოვებს ერთ ჩანაწერს. PUT ამსხვრევს მას და საჭიროებს record_ type, name, value და ttl. PATCH მხოლოდ თქვენს მიერ გაგზავნილ ველებს ცვლის. DELETE ამოიღებს ჩანაწერს და უკან იტოვებს 204- ს სხეულთან ერთად. ცვლილებები სწრაფად გამოქვეყნდება. NS ჩანაწერები, რომლებიც ზონაში შეიქმნა, სისტემური ჩანაწერებია: მათი განახლება ან წაშლა უკან იტოვებს 403- ს.
curl -X PATCH "https://admin.vps.org/api/v1/dns-records/4b8e2c10-7d3f-4a5b-9e6c-1a2b3c4d5e6f/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ttl": 300}'
| 200 | GET, PUT ან PATCH: ჩანაწერი |
| 204 | Deleted. The response has no body. |
| 400 | დამოწმების შეცდომა |
| 403 | ჩანაწერი არის სისტემური ჩანაწერი, ან ტოკენს არ აქვს საჭირო უფლება |
| 404 | ვერ მოიძებნა, ან სხვა ანგარიშს ეკუთვნის |
დამოწმების შეცდომები 400- ს იძლევა, პრობლემა კი ველი სახელით არის დაწერილი:
{
"priority": ["MX records require a priority value"]
}
VPS.org სახელის სერვერების პირდაპირი დაკითხვა, რათა დადასტურდეს ცვლილება, სანამ რეგისტრის დელეგაცია ან გადამწყვეტი კეში არ დაეცემა:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com