ایجاد مناطق DNS و مدیریت رکوردهای آن. مناطق توسط ns1. vps.org ، ns2. vps.org و ns3. vps.org خدمترسانی میشوند.
یک منطقه رکوردهای یک دامنه را نگه میدارد. هر تغییری که از طریق API انجام میدهید بلافاصله به کارسازهای نام VPS.org فشار داده میشود. برای خدمترسانی به یک دامنه از این مناطق ، کارسازهای نام را در ثبتکننده خود به ns1. vps.org ، ns2. vps.org و ns3. vps.org تنظیم کنید.
تغییرات در یک گام ذخیره و منتشر میشوند: اگر کارسازهای نام یک تغییر را رد کنند، درخواست ۵۰۲ را برمیگرداند و هیچ چیز ذخیره نمیشود. یک منطقه نمیتواند برای دامنه ای که حساب دیگر از قبل مدیریت میکند، یک پدر یا فرزند از منطقه حساب دیگر، یا یک نام رزرو شده VPS.org ایجاد شود.
مجوز مورد نیاز:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
بازگرداندن مناطق شما ، جدیدترین اول ، ۲۵ در هر صفحه. رکوردها در اینجا شامل نمیشوند. برای گرفتن آنها ، یک منطقه تک را بازیابی کنید.
| Parameter | نوع | مورد نیاز | Description |
|---|---|---|---|
domain |
string | No | فقط بازگرداندن ناحیۀ دقیقاً با این نام دامنه |
page |
integer | No | شماره صفحه، از ۱ شروع میشود |
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
}
]
}
| میدان | نوع | Description |
|---|---|---|
uuid |
string | شناسۀ منطقه |
domain |
string | نام دامنه ، ذخیرهشده در حروف کوچک |
created_at |
datetime | زمان ایجاد) ISO 8601 ، UTC ( |
record_count |
integer | تعداد رکوردها در منطقه، شامل سه رکورد NS |
| 200 | موفقیت |
| 403 | نشان API مفقود یا نامعتبر، یا نشان اجازه مورد نیاز را ندارد |
یک منطقه را ایجاد میکند و منتشر میکند. منطقه با سه رکورد NS برای ns1 ، ns2 و ns3. vps.org آغاز میشود ، که رکوردهای سیستمی هستند و نمیتوان آنها را ویرایش یا حذف کرد.
| Parameter | نوع | مورد نیاز | Description |
|---|---|---|---|
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 | نام دامنۀ گمشده یا نامعتبر |
یک منطقه را با همۀ رکوردهایش در آرایه رکوردها برمیگرداند. پاسخ همان شکل پاسخ ایجاد بالا را دارد.
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 | حذف شد. پاسخ بدنه ندارد. |
| 400 | یک کارساز نام هنوز برای منطقه خدمت میکند. منطقه حذف نشد؛ حوزه جزئیات خطاها را فهرست میکند. |
| 404 | پیدا نشد یا متعلق به حساب دیگری است |
GET هر رکورد در منطقه را به عنوان یک آرایه ساده (بدون صفحات) برمیگرداند، که بر اساس نوع و نام مرتب شدهاست. POST یک رکورد را به منطقه اضافه میکند و آن را منتشر میکند.
| Parameter | نوع | مورد نیاز | Description |
|---|---|---|---|
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"
}
| میدان | نوع | Description |
|---|---|---|
uuid |
string | شناسۀ رکورد، توسط /api/v1/dns-records/ endpoints استفاده میشود |
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 رکوردهای تمام مناطق شما را برمیگرداند، ۲۵ در هر صفحه، مرتب شده توسط دامنه، نوع و نام. POST یک رکورد مانند نقطه پایانی رکوردهای منطقه ایجاد میکند، اما منطقه را در بدن به عنوان zone_uuid میگیرد.
| Parameter | نوع | مورد نیاز | Description |
|---|---|---|---|
zone |
string | No | فقط رکوردهای منطقه با این uuid |
record_type |
string | No | فقط رکوردهای این نوع ، برای مثال MX) حساس به حروف بزرگ و کوچک ( |
page |
integer | No | شماره صفحه، از ۱ شروع میشود |
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 | موفقیت |
| 201 | POST: ایجاد رکورد |
| 400 | خطای اعتبارسنجی، یا zone_ uuid گم شده یا یکی از مناطق شما نیست |
GET یک رکورد را برمیگرداند. PUT جایگزین آن میشود و نیازمند record_type ، name ، value و ttl است. PATCH فقط فیلدهایی را که فرستادهاید تغییر میدهد. DELETE رکورد را حذف میکند و ۲۰۴ را بدون بدنه برمیگرداند. تغییرات بلافاصله منتشر میشوند. رکوردهای NS ایجاد شده با منطقه رکوردهای سیستم هستند: بهروزرسانی یا حذف آنها ۴۰۳ را برمیگرداند.
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 | حذف شد. پاسخ بدنه ندارد. |
| 400 | خطای اعتبارسنجی |
| 403 | رکورد یک رکورد سیستم است، یا نشانه اجازه مورد نیاز را ندارد |
| 404 | پیدا نشد یا متعلق به حساب دیگری است |
خطاهای اعتبارسنجی با مشکل کلیدگذاریشده توسط نام حوزه، ۴۰۰ را برمیگردانند:
{
"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