VPS.org API

REST API मिसिलीकरण

DNS व्यवस्थापन API

डीएनएस क्षेत्रहरू सिर्जना र आफ्नो रेकर्डहरू व्यवस्थापन। क्षेत्रहरू 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 आफ्नो रजिष्टार मा यसको नाम सर्भर सेट.

Changes are saved and published in one step: if the nameservers refuse a change, the request returns 502 and nothing is saved. A zone cannot be created for a domain another account already manages, a parent or child of another account's zone, or a VPS.org reserved name.

अनुमति आवश्यक: 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/

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 हो रेकर्ड डेटा, उदाहरणका लागि आईपी ठेगाना वा होस्टनाम । होस्टनामलाई पछिल्लो बिन्दु आवश्यक पर्दैन र 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 होइन पृष्ठ नम्बर, १ बाट सुरु
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, नाम, मान र 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 फेला परेन, वा यो अर्को खातासँग सम्बन्धित छ

त्रुटि ह्यान्डलिङ

वैधता त्रुटिले फिल्ड नामद्वारा कुञ्जीबद्ध समस्यासँग ४०० फर्काउँछ:

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

डीएनएस परिवर्तन परीक्षण गर्दै

परिवर्तन आफ्नो रजिष्टार प्रतिनिधित्व वा resolver क्यास अप पकड अघि जीवित छ पुष्टि गर्न VPS.org नाम सर्भरहरू प्रत्यक्ष क्वेरी:

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