VPS.org API

REST 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.vps.org-এ নির্ধারণ করুন।

পরিবর্তন এক ধাপেই সংরক্ষণ এবং প্রকাশ করা হয়: যদি নাম সার্ভার পরিবর্তন প্রত্যাখ্যান করে, অনুরোধটি ৫০২ ফিরিয়ে দেয় এবং কিছুই সংরক্ষণ করা হয় না। অন্য অ্যাকাউন্ট দ্বারা পরিচালিত ডোমেইনের জন্য একটি জোন তৈরি করা যাবে না, অন্য অ্যাকাউন্টের জোনের পিতামাতা বা সন্তান, অথবা একটি VPS.org সংরক্ষিত নাম।

অনুমতি প্রয়োজন: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

পান /api/v1/dns-zones/

সকল DNS জোনের তালিকা তৈরি করুন

আপনার অঞ্চলগুলি ফিরিয়ে দেয়, নতুন প্রথম, প্রতি পৃষ্ঠা ২৫ । রেকর্ড এখানে অন্তর্ভুক্ত করা হয় না; তাদের পেতে একটি একক অঞ্চল আনা হয় ।

কোয়েরি প্যারামিটার

পরামিতি আদর্শ প্রয়োজনীয় বর্ণনা
domain string না শুধুমাত্র এই ডোমেইন নামের সাথে জোন ফিরিয়ে দাও
page integer না পৃষ্ঠার সংখ্যা, ১ থেকে আরম্ভ

উদাহরণ অনুরোধ

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/

ডি. এন. এস. জোন তৈরি করো

একটি জোন তৈরি করে এবং এটি প্রকাশ করে। জোনটি 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}/

ডি. এন. এস. জোন- এর বিস্তারিত তথ্য প্রাপ্ত করো

একটি রেকর্ড অ্যারে- এ একটি অঞ্চলের সব রেকর্ডের সাথে ফিরিয়ে দেয় । উত্তরের আকৃতি উপরের তৈরি করার উত্তরের মতই ।

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}/

ডি. এন. এস. জোন মুছে ফেলো

তিনটি নেম সার্ভার থেকে জোনটি সরিয়ে ফেলে, পরীক্ষা করে যে তাদের মধ্যে কেউই এখনও এটি পরিষেবা দেয় না, এবং তারপর জোন এবং এর রেকর্ড মুছে ফেলে। যদি কোন নেম সার্ভার এখনও জোনের জন্য উত্তর দেয়, অনুরোধ ব্যর্থ হয় এবং জোনটি রাখা হয় যাতে আপনি পুনরায় চেষ্টা করতে পারেন।

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 জোনে প্রত্যেক রেকর্ড একটি সাধারণ অ্যারে (পেজ করা নয়) হিসাবে ফিরিয়ে দেয়, ধরন এবং নাম দ্বারা সজ্জিত। 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/ endpoints দ্বারা ব্যবহৃত রেকর্ড পরিচায়ক
priority integer | null MX এবং SRV রেকর্ডের জন্য অগ্রাধিকার, অন্যথা null
created_at date শুধুমাত্র নির্মাণের তারিখ (Y-MM-DD), সময় ছাড়া

প্রতিক্রিয়া স্থিতি কোড

200 GET: জোনের রেকর্ড
201 POST: রেকর্ড তৈরি করা হয়েছে
400 বৈধতা পরীক্ষায় ত্রুটি, উদাহরণস্বরূপ অজানা রেকর্ড ধরন, একটি ttl অনুপস্থিত, অথবা অগ্রাধিকার ছাড়া একটি MX অথবা SRV রেকর্ড
404 পাওয়া যায়নি, অথবা এটি অন্য অ্যাকাউন্টের অন্তর্ভুক্ত
পোস্ট /api/v1/dns-zones/{uuid}/sync/

একটি অঞ্চল পুনরায় প্রকাশ করো

জোন এবং এর সমস্ত রেকর্ড পুনরায় নেম সার্ভারে প্রেরণ করে । রেকর্ড পরিবর্তন স্বয়ংক্রিয়ভাবে প্রকাশ করা হয়, কিন্তু প্রকাশ করা সবচেয়ে ভাল চেষ্টা এবং ব্যর্থতা মূল অনুরোধ ব্যর্থ হয় না, তাই এটি ব্যবহার করো যখন একটি পরিবর্তন ডিএনএস অনুসন্ধান দেখায় না । কোন অনুরোধের শরীরের প্রয়োজন নেই ।

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 আপনার সমস্ত জোনের রেকর্ড ফিরিয়ে দেয়, প্রতি পৃষ্ঠাতে ২৫টি, ডোমেইন, ধরন এবং নাম অনুযায়ী সাজানো। POST জোন রেকর্ডের শেষ বিন্দুর মত একটি রেকর্ড তৈরি করে, কিন্তু বডিতে জোনকে zone_uuid হিসেবে নেয়।

কোয়েরি প্যারামিটার

পরামিতি আদর্শ প্রয়োজনীয় বর্ণনা
zone string না শুধুমাত্র এই uuid সহ জোনের রেকর্ড
record_type string না শুধুমাত্র এই ধরনের রেকর্ড, উদাহরণস্বরূপ MX (case insensitive)
page integer না পৃষ্ঠার সংখ্যা, ১ থেকে আরম্ভ
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 অনুপস্থিত অথবা আপনার জোনের মধ্যে একটি নয়
পান PUT PATCH মুছে ফেলুন /api/v1/dns-records/{uuid}/

রেকর্ড প্রাপ্ত, হালনাগাদ অথবা মুছে ফেলো

GET একটি রেকর্ড ফিরিয়ে দেয়। PUT এটি প্রতিস্থাপন করে এবং record_type, name, value এবং ttl প্রয়োজন হয়। PATCH শুধুমাত্র আপনি পাঠানো ক্ষেত্র পরিবর্তন করে। DELETE রেকর্ড অপসারণ করে এবং কোন বডি ছাড়া ২০৪ ফিরিয়ে দেয়। পরিবর্তনগুলো অবিলম্বে প্রকাশিত হয়। 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 GET, PUT অথবা PATCH: রেকর্ড
204 মুছে ফেলা হয়েছে । উত্তরে কোন বডি নেই ।
400 বৈধতা পরীক্ষায় ত্রুটি
403 রেকর্ডটি একটি সিস্টেম রেকর্ড, অথবা টোকেনে প্রয়োজনীয় অনুমতি অনুপস্থিত
404 পাওয়া যায়নি, অথবা এটি অন্য অ্যাকাউন্টের অন্তর্ভুক্ত

সমস্যা হ্যান্ডলিং

Validation errors return 400 with the problem keyed by field name:

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