DNS bölgeleri oluşturun ve kayıtlarını yönetin. Bölgeler ns1.vps.org, ns2.vps.org ve ns3.vps.org tarafından hizmet edilir.
Bir bölge bir alan için kayıtları tutar. API üzerinden yaptığınız her değişiklik VPS.org isim sunucularına hemen gönderilir. Bu bölgelerden bir alan için hizmet etmek için, kayıt defterinizde isim sunucularını ns1.vps.org, ns2.vps.org ve ns3.vps.org olarak ayarlayınız.
Değişiklikler tek bir adımla kaydediliyor ve yayınlanıyor: eğer isim sunucuları bir değişikliği reddediyorsa, talepte 502 geri dönüyor ve hiçbir şey kaydedilmiyor. Bir bölge, başka bir hesap tarafından yönetilen bir alan, başka bir hesaptaki bir ana veya çocuk bölgesi veya VPS.org rezerve bir isim için oluşturulamaz.
İzin gerekiyor:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Bölgelerinizi, en yenisi önce, sayfa başına 25 olarak geri verir. Kayıtlar burada yer almıyor; onları almak için tek bir bölgeyi alın.
| Parametreler | Tip | Gerekli | Açıklama |
|---|---|---|---|
domain |
string | Hayır. | Sadece bu alan adıyla aynı olan bölgeyi geri ver |
page |
integer | Hayır. | Sayfa sayısı, 1'den başlayarak |
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
}
]
}
| Alan | Tip | Açıklama |
|---|---|---|
uuid |
string | Bölge tanımlayıcı |
domain |
string | Alan adı, küçük harflerle depolanır |
created_at |
datetime | Yaratma zamanı (ISO 8601, UTC) |
record_count |
integer | Üç NS kaydı da dahil olmak üzere bölgedeki kayıt sayısı |
| 200 | Başarı |
| 403 | Eksik veya geçersiz API token'ı, ya da token'ın gerekli izinleri yok |
Bir bölge yaratıp yayınlar. Bölge, ns1, ns2 ve ns3. vps.org için üç NS kaydı ile başlar, bunlar sistem kayıtlarıdır ve düzenetilemez veya silinmez.
| Parametreler | Tip | Gerekli | Açıklama |
|---|---|---|---|
domain |
string | Evet | Alan adı, örneğin 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 | Bölge oluşturuldu |
| 400 | Eksik veya geçersiz alan adı |
Bir kayıt dizisi içindeki tüm kayıtlarıyla birlikte bir bölgeyi geri verir. Cevap yukarıdaki yarat cevabı ile aynı biçimdedir.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Başarı |
| 404 | Bulunamadı veya başka bir hesaba aittir |
Bölgeyi üç isim sunucusundan da kaldırır, hiçbirinin ona hizmet vermediğini kontrol eder, sonra da bölge ve kayıtlarını siler. Eğer bir isim sunucusu hala bölge için cevap verirse, talep başarısız olur ve bölge tekrar denemeniz için saklanır.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Çözümün bir başlığı yok. |
| 400 | Bir isim sunucusu hala bölgeye hizmet veriyor. Bölge silinmedi; ayrıntılı alan hataları listeliyor. |
| 404 | Bulunamadı veya başka bir hesaba aittir |
GET, bölgedeki her kaydı, türü ve adı ile sıralanmış, sıradan bir dizi olarak (sayfalanmış değil) geri verir. POST, bölgeye bir kayıt ekler ve yayınlar.
| Parametreler | Tip | Gerekli | Açıklama |
|---|---|---|---|
record_type |
string | Evet | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Evet | @ alan adı için kendisi, ya da www gibi bir etiket. Adlar küçük harflerle depolanır. |
value |
string | Evet | Kayıt verileri, örneğin IP adresi veya bir sunucu adı. Sunucu adları son noktaya ihtiyaç duymaz ve TXT değerleri alıntıya ihtiyaç duymaz; her ikisi de kayıt yayınlandığında eklenir. |
ttl |
integer | Evet | Yaşamak için saniyeler var. |
priority |
integer | Sadece MX ve SRV | MX ve SRV kayıtları için gereklidir ve diğer tüm türler için göz ardı edilir. SRV için değere ağırlık, port ve hedef koyun. |
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"
}
| Alan | Tip | Açıklama |
|---|---|---|
uuid |
string | /api/v1/dns-records/ son noktaları tarafından kullanılan kayıt tanımlayıcısı |
priority |
integer | null | MX ve SRV kayıtları için öncelik, aksi takdirde boş |
created_at |
date | Sadece yaratım tarihi (Y-MM-DD), zaman olmadan |
| 200 | GET: Bölgenin kayıtları |
| 201 | POST: kayıt oluşturuldu |
| 400 | Güvenlik hatası, örneğin bilinmeyen kayıt türü, eksik ttl, veya önceliksiz MX veya SRV kaydı |
| 404 | Bulunamadı veya başka bir hesaba aittir |
Zon ve tüm kayıtlarını isim sunucularına tekrar itiyor. Kayıt değişiklikleri otomatik olarak yayınlanır, ancak yayın en iyi çabadır ve bir hata orijinal isteği başarısız etmez, bu yüzden bir değişiklik DNS aramalarında görünmediği zaman bunu kullanın. İstek bedeni gerekmez.
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, alan, tür ve isimlere göre sıralanmış, sayfa başına 25 adet olarak tüm bölgelerinizin kayıtlarını geri verir. POST, bölge kayıtlarının son noktası gibi bir kayıt oluşturur, ancak bedendeki bölgeyi zone_uuid olarak alır.
| Parametreler | Tip | Gerekli | Açıklama |
|---|---|---|---|
zone |
string | Hayır. | Sadece bu uuid ile bölgenin kayıtları |
record_type |
string | Hayır. | Sadece bu tür kayıtlar, örneğin MX (büyük harf fark etmez) |
page |
integer | Hayır. | Sayfa sayısı, 1'den başlayarak |
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 | Başarı |
| 201 | POST: kayıt oluşturuldu |
| 400 | Güvenlik hatası, ya da zone_uuid eksik ya da sizin bölgelerinizden biri değil |
GET bir kayıt geri verir. PUT kayıt_türü, adı, değeri ve ttl'ye ihtiyaç duyar. PATCH sadece gönderdiğiniz alanları değiştirir. DELETE kayıtları kaldırır ve 204'ü bedensiz olarak geri verir. Değişiklikler hemen yayınlanmaktadır. Bölge ile oluşturulan NS kayıtları sistem kayıtlarıdır: bunları güncellemek veya silmek 403'ü geri verir.
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 veya PATCH: kayıt |
| 204 | Çözümün bir başlığı yok. |
| 400 | Güvenlik hatası |
| 403 | Kayıt bir sistem kaydıdır veya token gerekli izinden yoksundur |
| 404 | Bulunamadı veya başka bir hesaba aittir |
Güvenlik hataları, sorunun alan adı ile anahtarlanmış olduğunda 400 geri döndürür:
{
"priority": ["MX records require a priority value"]
}
Bir değişikliğin kayıt delegeleme veya çözümleme önbellekleriniz yakalamadan önce canlı olduğunu doğrulamak için VPS.org isim sunucularını doğrudan sorgulayın:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com