VPS.org API

REST API sənədləşdirilməsi

DNS İdarəetmə API-si

DNS zonaları yaradın və qeydlərini idarə edin. Zonalar ns1.vps.org, ns2.vps.org və ns3.vps.org tərəfindən xidmət edilir.

Son Nöqtələr 13
Əsas Yol /api/v1/dns-zones, /api/v1/dns-records

Baxış

Bir zona bir domen üçün qeydləri saxlayır. API vasitəsilə etdiyiniz hər dəyişiklik VPS.org ad vericilərinə dərhal göndərilir. Bu zonalardan bir domena xidmət etmək üçün qeydiyyatçınızda ad vericilərini ns1.vps.org, ns2.vps.org və ns3.vps.org olaraq təyin edin.

Dəyişənlər bir addımla qeyd edilir və yayımlanır: əgər ad vericiləri dəyişikliyi rədd etsələr, tələb 502 geri qaytarır və heç nə qeyd edilmir. Bir domen üçün zona yaradıla bilməz. Bir domen artıq başqa hesab tərəfindən idarə olunur, digər hesabın zonasının ana və ya övladı, ya da VPS.org rezerv edilmiş adı.

İcazə tələb olunur: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

AL /api/v1/dns-zones/

Bütün DNS Zonalarını Siyahıya Alın

Ən yenisi əvvəl, səhifə başına 25 olaraq zonalarınızı geri qaytarır. Qeydlər burada daxil edilmir; onları almaq üçün tək zonanı götürün.

Sorğu Parametrləri

Parametrlər Növü Tələb olunur İzahat
domain string _Yox Yalnız bu domen adıyla zonanı geri qaytar
page integer _Yox Səhifə nömrəsi, 1-dən başlayır

Nümunə Sorğu

cURL
Python
JavaScript
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);

Nümunə Cavab

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

Cavab Sahələri

Sahə Növü İzahat
uuid string Bölgə təsviredicisi
domain string Domen adı, kiçik hərflərlə saxlanılır
created_at datetime Yaradılma vaxtı (ISO 8601, UTC)
record_count integer Üç NS qeydi daxil olmaqla zonadakı qeydlərin sayı

Cavab Status Kodları

200 Müvəffəqiyyət
403 API tokeni yoxdu ya da səhvdir, ya da tokenin lazımi icazəsi yoxdur
POST /api/v1/dns-zones/

DNS Zonası Yarat

Bir zona yaradır və onu nəşr edir. Zona ns1, ns2 və ns3.vps.org üçün üç NS qeydi ilə başlayır, bunlar sistem qeydləridir və redaktə edilə və ya silinə bilməz.

Əsas Parametrləri Sorğu

Parametrlər Növü Tələb olunur İzahat
domain string Bəli Domenin adı, misal 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"}'

Nümunə Cavab

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

Cavab Status Kodları

201 Bölmə yaradıldı
400 Eksik ya da səhv domen adı
AL /api/v1/dns-zones/{uuid}/

DNS Bölgəsi Məlumatlarını Al

Bir zonanı onun qeydləri olan bir qeydlər sırası ilə geri qaytarır. Cavab yuxarıda yaradılan cavabla eyni şəkildədir.

curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Cavab Status Kodları

200 Müvəffəqiyyət
404 Tapılmadı ya da başqa hesaba aiddir
SİLİN /api/v1/dns-zones/{uuid}/

DNS Zonasını Sil

Zonu üç ad vericisinin hamısından çıxarır, heç birinin ona xidmət etmədiyini yoxlayır, sonra da zonu və onun qeydlərini silər. Əgər ad vericisinin zona üçün cavabı varsa, tələbi bacarmaz və zona yenidən sınaya biləcəyiniz üçün saxlanılır.

curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Cavab Status Kodları

204 Deleted. The response has no body.
400 Ad vericisinin həqiqətən də zonaya xidmət etməsi. Zona silinməmişdir; ətraflı sahədə xətalar göstərilir.
404 Tapılmadı ya da başqa hesaba aiddir
AL POST /api/v1/dns-zones/{uuid}/records/

Bölmədə qeydləri siyahıya al ya da əlavə et

GET zonadakı hər bir qeydi adi bir sıra olaraq (saytlanmış deyil) və növ və ad üzrə sıralanmış olaraq geri qaytarır. POST zonaya bir qeyd əlavə edir və onu yayımlayır.

Əsas Parametrləri Sorğu (POST)

Parametrlər Növü Tələb olunur İzahat
record_type string Bəli A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Bəli @ domen özü üçün, ya da www kimi bir etiket üçün. Adlar kiçik hərflərlə saxlanılır.
value string Bəli Qeyd məlumatı, məsələn IP ünvanı və ya qovşaq adı. Qovşaq adları üçün son nöqtə və TXT dəyərləri üçün nitqlərə ehtiyac yoxdur; hər ikisi qeyd nəşr edildikdə əlavə edilir.
ttl integer Bəli Saniyede yaşadığı müddət
priority integer Yalnız MX və SRV MX və SRV qeydləri üçün lazımlı və digər növlər üçün nəzərə alınmır. SRV üçün, dəyərdə ağırlıq, port və hədəf qoyun.

Nümunə Sorğu

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

Nümunə Cavab

{
  "uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
  "record_type": "MX",
  "name": "@",
  "value": "mail.example.com",
  "ttl": 3600,
  "priority": 10,
  "created_at": "2026-09-14"
}

Cavab Sahələri

Sahə Növü İzahat
uuid string /api/v1/dns-records/ son nöqtələri tərəfindən istifadə edilən qeyd identifikatoru
priority integer | null MX və SRV qeydləri üçün prioritet, əks halda null
created_at date Yalnız yaradılma tarixi (Y-MM-DD), vaxtsız

Cavab Status Kodları

200 GET: zonanın qeydləri
201 POST: qeyd yaradıldı
400 Təsdiqləmə xətası, məsələn namə'lum qeyd növü, yox olan ttl, ya da prioritetsiz MX ya da SRV qeydi
404 Tapılmadı ya da başqa hesaba aiddir
POST /api/v1/dns-zones/{uuid}/sync/

Bölməni yenidən yayımla

Zona və bütün qeydlərini ad vericilərinə yenidən göndərir. Qeyd dəyişikliyi avtomatik olaraq yayımlanır, lakin yayım ən yaxşı cəhddir və bir səhv orijinal tələbi bacarmır, buna görə də dəyişiklik DNS axtarışlarında görünmədiyi zaman bu istifadə edin. İstifadəçi tələbi lazım deyil.

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"
}
AL POST /api/v1/dns-records/

Bölgələr arasında qeydləri siyahıya al ya da yarat

GET bütün zonaların qeydlərini geri qaytarır, səhifə başına 25, domen, növ və ad üzrə sıralanır. POST zona qeydlərinin son nöqtəsi kimi bir qeyd yaradır, lakin zonanın bədənini zone_uuid olaraq alır.

Sorğu Parametrləri

Parametrlər Növü Tələb olunur İzahat
zone string _Yox Yalnız bu uuid ilə zonanın qeydləri
record_type string _Yox Yalnız bu növ qeydlər, məsələn MX (kiçik və böyük hərflərə fərq qoymur)
page integer _Yox Səhifə nömrəsi, 1-dən başlayır
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"
    }
  ]
}

Cavab Status Kodları

200 Bağlan
201 POST: qeyd yaradıldı
400 Təsdiqləmə xətası, ya da zone_uuid yoxdu ya da sizin zonalarınızdan biri deyil
AL PUT PATCH SİLİN /api/v1/dns-records/{uuid}/

Qeydləri al, yenilət və ya sil

GET bir qeydi geri qaytarır. PUT onu əvəz edir və record_type, name, value və ttl tələb edir. PATCH yalnız göndərdiyiniz sahələri dəyişir. DELETE qeydi silərək bədənsiz 204 geri qaytarır. Dəyişikliklər dərhal yayımlanır. Zona ilə yaradılan NS qeydləri sistem qeydləridir: onları yeniləmək və ya silmək 403 geri qaytarır.

MX ya da SRV qeydinin prioritetini PATCH etdikdə record_type eyni tələbdə göndərilsin. Prioritetli PATCH bədəni record_type olmadan prioriteti silir.
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}'

Cavab Status Kodları

200 GET, PUT və ya PATCH: qeyd
204 Deleted. The response has no body.
400 Təsdiqləmə xətası
403 Qeyd sistem qeydidir ya da token lazımi icazələrə malik deyil
404 Tapılmadı ya da başqa hesaba aiddir

Xəta İdarəetmə

Təsdiqləmə xətaları problemin sahənin adı ilə açarlandığı 400 geri qaytarır:

{
  "priority": ["MX records require a priority value"]
}

DNS dəyişiklikləri sınanır

Dəyişmə qeydiyyatçı delegasiyanız ya da həlledici ön qurğularınıza çatmadan əvvəl dəyişikliyin canlı olduğunu təsdiq etmək üçün VPS.org ad vericilərini doğrudan sorğulayın:

dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com