VPS.org API

REST API دستاویزی

DNS مینجمنٹ API

DNS زون بناؤ اور انکے ریکارڈس کا انتظام کرو. زونز کو ns1.vps.org, ns2.vps.org اور ns3.vps.org سے سروس دی جاتی ہے.

اینڈ پوائنٹس 13
بنیاد کا راستہ /api/v1/dns-zones, /api/v1/dns-records

جائزہ

ایک زون ایک ڈومین کے لئے ریکارڈ رکھتا ہے آپ API کے ذریعے کرنے والے ہر تبدیلی کو VPS.org نام سرور میں فوراً پھینک دیا جاتا ہے ان زونز سے ایک ڈومین سروس کرنے کے لئے، اپنے رجسٹرار پر اس کے نام سرور کو ns1.vps.org، ns2.vps.org اور ns3.zqx1xqt پر ترتیب دیں.

تبدیلیوں کو ایک قدم میں محفوظ اور شائع کیا جاتا ہے: اگر نام سرور تبدیلی کو رد کر دیں تو درخواست 502 واپس کر دیتی ہے اور کچھ بھی محفوظ نہیں ہوتا. ایک زون کو ایک ڈومین کے لیے نہیں بنایا جاسکتا جو پہلے سے ہی ایک دوسرے اکاؤنٹ کے ساتھ منسلک ہو چکا ہو، ایک والدین یا بچے دوسرے اکاؤنٹ کے زون کے، یا ایک VPS.org رزرو نام کے ساتھ.

اجازت لازم ہے: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

حاصل کریں۔ /api/v1/dns-zones/

تمام DNS زونز کی فہرست بنائیں

آپ کے زونز کو واپس لاتا ہے، نئے سے پہلے، 25 پر صفحہ. ریکارڈ یہاں شامل نہیں ہیں؛ انہیں حاصل کرنے کے لیے ایک واحد زون حاصل کریں.

سوال کے پیرامیٹرز

پرائمری قسم درکار ہے۔ وضاحت
domain string نہیں صرف اس ڈومین نام کے ساتھ زون واپس کریں
page integer نہیں صفحہ نمبر، 1 سے شروع

مثال کی درخواست

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);

مثال کا جواب

{
  "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 ٹوکن، یا توکن میں ضروری اجازت نامہ نہیں ہے
پوسٹ /api/v1/dns-zones/

DNS زون بنائیں

ایک زون بناتا ہے اور اسے شائع کرتا ہے. زون ns1, ns2 اور ns3.vps.org کے لیے تین NS ریکارڈز سے شروع ہوتا ہے، جو کہ نظام ریکارڈز ہیں اور تحریر یا حذف نہیں کیا جاسکتا.

جسمانی پیرامیٹرز کی درخواست کریں۔

پرائمری قسم درکار ہے۔ وضاحت
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 غائب یا نامعتبر ڈومین نام
حاصل کریں۔ /api/v1/dns-zones/{uuid}/

DNS زون تفصیلات حاصل کریں

ایک زون کو اسکے تمام ریکارڈز کے ساتھ ریکارڈز کے آرری میں واپس کرتا ہے. جواب کو اوپر کی تخلیق کا جواب کے طور پر ایک ہی شکل ہے.

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

رسپانس اسٹیٹس کوڈز

200 کامیابی
404 نہیں ملا یا یہ دوسرے اکاؤنٹ کی ملکیت تھا
حذف کریں۔ /api/v1/dns-zones/{uuid}/

DNS زون حذف کریں

زون کو تمام تین نام سرور سے ہٹاتا ہے، اس پر جانچ کرتا ہے کہ کوئی بھی ان میں سے اب بھی اسے سروس نہیں کر رہا ہے، اور پھر زون اور اس کے ریکارڈ کو حذف کرتا ہے اگر نام سرور اب بھی زون کے لئے جواب دے تو درخواست ناکام ہو جاتی ہے اور زون محفوظ رکھا جاتا ہے تاکہ آپ دوبارہ کوشش کر سکیں.

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 نہیں ملا یا یہ دوسرے اکاؤنٹ کی ملکیت تھا
حاصل کریں۔ پوسٹ /api/v1/dns-zones/{uuid}/records/

ایک زون میں ریکارڈز کو شامل کریں

GET زون میں ہر ریکارڈ کو ایک عام آرری کے طور پر واپس کرتا ہے (نہ pageted)، قسم اور نام کے مطابق ترتیب دیا جاتا ہے. POST زون میں ریکارڈ شامل کرتا ہے اور اسے شائع کرتا ہے.

جسمانی پیرامیٹرز کی درخواست کریں۔ (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
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())

مثال کا جواب

{
  "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 نہیں ملا یا یہ دوسرے اکاؤنٹ کی ملکیت تھا
پوسٹ /api/v1/dns-zones/{uuid}/sync/

زون دوبارہ شائع کریں

زون اور اس کے تمام ریکارڈ کو نام سرور میں دوبارہ دباتا ہے ریکارڈ میں تبدیلی خودکار طور پر شائع کی جاتی ہے لیکن شائع کرنا بہترین کوشش ہے اور ناکامی اصل درخواست کو ناکام نہیں کرتی، اس لیے اس کو استعمال کریں جب تبدیلی 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"
}
حاصل کریں۔ پوسٹ /api/v1/dns-records/

زونز میں ریکارڈس کو قائم کریں

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 کامیابی
201 POST: ریکارڈ بنایا گیا
400 تصدیق غلطی، یا zone_uuid غائب ہے یا آپ کے زونز میں سے ایک نہیں ہے
حاصل کریں۔ PUT PATCH حذف کریں۔ /api/v1/dns-records/{uuid}/

ریکارڈ حاصل کریں، اپڈیٹ کریں يا حذف کریں

GET ایک ریکارڈ واپس لاتا هے PUT اسکے بدلے ميں آتا هے اور اسکے ليے record_type ، نام ، قيمت اور ttl کا احتياج هے PATCH صرف ان فائلوں کو تبديل کر تا هے جو آپ نے بھیجا هے DELETE ریکارڈ کو ہٹا تا هے اور 204 واپس لاتا هے جسکے جسم کا ذريعہ نا هے تبديلياں فوري طور پر شائع کيے جا تے هيں NS ریکارڈ جو زون کے ساتھ بنا يا گيا هے نظام ریکارڈ هے: انکے اپ ڈے يا حذف کر نے 403 واپس لاتا هے

جب آپ MX یا SRV ریکارڈ کی ترجیح کو PATCH کرتے ہیں، اسی درخواست میں record_type بھیجیں. ایک PATCH باڈی جس میں ترجیح ہے لیکن record_type کے بغیر ہے وہ ترجیح کو صاف کرتا ہے.
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 گيٹ ، پوٹ يا پيچ: ريکورڈ
204 حذف کیا گیا. جواب میں کوئی جسم نہیں ہے.
400 تصدیق میں غلطی
403 ریکارڈ ایک نظام ریکارڈ ہے، یا توکن میں ضروری اجازت نہیں ہے
404 نہیں ملا یا یہ دوسرے اکاؤنٹ کی ملکیت تھا

غلطی ہینڈلنگ

تصدیق غلطی 400 واپس کر تا هے جس میں مسئلہ فیلڈ نام سے کیے گئے هے:

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

DNS تبدیلیوں کا امتحان

آپ کے رجسٹرر ڈیلگیشن یا ریلوزرز کیش کے پیچھے ایک تبدیلی کی تصدیق کرنے کے لئے VPS.org نام سرور کو براہ راست پوچھو:

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