Create DNS zones and manage their records. Zones are served by ns1.vps.org, ns2.vps.org and ns3.vps.org.
A zone holds the records for one domain. Every change you make through the API is pushed to the VPS.org nameservers straight away. To serve a domain from these zones, set its nameservers at your registrar to ns1.vps.org, ns2.vps.org and 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:*
ನಿಮ್ಮ ಕ್ಷೇತ್ರಗಳನ್ನು ಮರಳಿ, ಅತಿ ಹೊಸದಾದ, ಮೊದಲನೆಯ ಪುಟಕ್ಕೆ 25 ಅನ್ನು ಮರಳಿಸುತ್ತದೆ. ದಾಖಲೆಗಳನ್ನು ಇಲ್ಲಿ ಸೇರಿಸಲಾಗಿಲ್ಲ; ಅವುಗಳನ್ನು ಪಡೆಯಲಿಕ್ಕಾಗಿ ಒಂದು ವಲಯವನ್ನು ತೆಗೆದುಕೊಂಡು ಬಾ.
| ಮಾಪನಾಂಕ ನಿರ್ಣಯ (ಕ್ಯಾಲಿಬ್ರೇಷನ್) | ಪ್ರಕಾರ | ಅಗತ್ಯವಿದೆ | ವಿವರಣೆ |
|---|---|---|---|
domain |
string | ಇಲ್ಲ | ಈ ಡೊಮೈನ್ ಹೆಸರಿನೊಂದಿಗೆ ಕೇವಲ ವಲಯವನ್ನು ಮಾತ್ರ ಮರಳಿ ಸ್ಥಾಪಿಸು |
page |
integer | ಇಲ್ಲ | ಪುಟದ ಸಂಖ್ಯೆ, ೧ ಕ್ಕೆ ಆರಂಭಿಸು |
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 | Creation time (ISO 8601, UTC) |
record_count |
integer | % 1 ಗೆ ನ್ಯಾವಿಗೇಟರ್ |
| 200 | ಯಶಸ್ವಿಯಾಗಿದೆ |
| 403 | API ಗುರುತು ಕಾಣಿಸುತ್ತಿಲ್ಲ ಅಥವ ಅಗತ್ಯವಾದ ಸೂಚಕಕ್ಕೆ ಬೇಕಾದ ಅನುಮತಿ ಇಲ್ಲ |
Creates a zone and publishes it. The zone starts with three NS records for ns1, ns2 and ns3.vps.org, which are system records and cannot be edited or deleted.
| ಮಾಪನಾಂಕ ನಿರ್ಣಯ (ಕ್ಯಾಲಿಬ್ರೇಷನ್) | ಪ್ರಕಾರ | ಅಗತ್ಯವಿದೆ | ವಿವರಣೆ |
|---|---|---|---|
domain |
string | ಹೌದು | ಉದಾ: ಡೊಮೈನ್ ಹೆಸರು. 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 | Zone created |
| 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 | ಕಂಡು ಬಂದಿಲ್ಲ, ಅಥವಾ ಅದು ಬೇರೊಂದು ಖಾತೆಗೆ ಸೇರಿದ್ದಾಗಿದೆ |
GStop ಒಂದು ದಾಖಲೆಯನ್ನು ಝೋನ್ಗೆ ಮರಳಿಸುತ್ತದೆ. ಇದು ಕ್ರಮದಲ್ಲಿ ಹಾಗು ಹೆಸರು ಪ್ರಕಾರವಾಗಿ ಕ್ರಮಗೊಳಿಸಲ್ಪಟ್ಟಿದೆ. PATH zone ಗೆ ಒಂದು ದಾಖಲೆ ಒದಗಿಸುತ್ತದೆ ಹಾಗು ಅದನ್ನು ಪ್ರಕಾಶಿಸುತ್ತದೆ.
| ಮಾಪನಾಂಕ ನಿರ್ಣಯ (ಕ್ಯಾಲಿಬ್ರೇಷನ್) | ಪ್ರಕಾರ | ಅಗತ್ಯವಿದೆ | ವಿವರಣೆ |
|---|---|---|---|
record_type |
string | ಹೌದು | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | ಹೌದು | @ for the domain itself, or a label such as www. Names are stored in lowercase. |
value |
string | ಹೌದು | ದಾಖಲೆ ದತ್ತಾಂಶ, ಉದಾ: ಒಂದು IP ವಿಳಾಸ ಅಥವಾ ಆತಿಥೇಯನಾಮ (hostname). ತಂತಿಗೆ (pard tot) ಕಾಲುವೆ (dograph) ಗೆ ಅಥವ TXT ಮೌಲ್ಯಗಳಿಗೆ ಕಾಲುವೆ (ರೂಟ್) ಮೌಲ್ಯಗಳ ಅಗತ್ಯವಿಲ್ಲ; ಈ ಎರಡೂ ಸಹಿಕೆಯನ್ನು ಪ್ರಕಟಿಸಿದಾಗ ಸೇರಿಸಲಾಗುವುದು. |
ttl |
integer | ಹೌದು | ಸೆಕೆಂಡುಗಳಲ್ಲಿ ವಾಸಿಸಬೇಕಾದ ಸಮಯ |
priority |
integer | ಎಕ್ಸ್ ಮತ್ತು ಎಸ್ ಆರ್ವಿಐ ಮಾತ್ರ | MX ಹಾಗು SRV ದಾಖಲೆಗಳಿಗೆ ಅಗತ್ಯವಾಗಿದೆ ಹಾಗು ಎಲ್ಲಾ ಬಗೆಯಲ್ಲೂ ನಿರ್ಲಕ್ಷಿಸಲ್ಪಟ್ಟಿದೆ. SRV ಗೆ ತೂಕ, ಸಂಪರ್ಕಸ್ಥಾನ ಹಾಗು ಗುರಿವನ್ನು (target) ಗೋಧಿಯನ್ನು ಇಡಿ. |
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 | Record identifier, used by the /api/v1/dns-records/ endpoints |
priority |
integer | null | MX ಹಾಗು SRV ದಾಖಲೆಗಳಿಗೆ ಆದ್ಯತೆ, ಇಲ್ಲವಾದರೆ ಖಾಲಿ |
created_at |
date | ಸೃಷ್ಟಿ ದಿನಾಂಕ ಮಾತ್ರ (YYY- M- DD), ಕೇವಲ ಸಮಯವಿಲ್ಲ |
| 200 | ಬಾಕಿ: ಅಂಡ್ನ ದಾಖಲೆಗಳು |
| 201 | ಪೋಸ್ಟ್: ದಾಖಲೆ ತಯಾರಿಸಲ್ಪಟ್ಟಿತು |
| 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 returns the records of all your zones, 25 per page, ordered by domain, type and name. POST creates a record like the zone records endpoint, but takes the zone in the body as zone_uuid.
| ಮಾಪನಾಂಕ ನಿರ್ಣಯ (ಕ್ಯಾಲಿಬ್ರೇಷನ್) | ಪ್ರಕಾರ | ಅಗತ್ಯವಿದೆ | ವಿವರಣೆ |
|---|---|---|---|
zone |
string | ಇಲ್ಲ | ಈ uid ನ ಜೋಡಣೆ (ಯುಐ) ನಥಾಥಾನ್ಗಳು ಮಾತ್ರ |
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 | ಗೆಲುವ: ಯಶಸ್ಸು |
| 201 | ಪೋಸ್ಟ್: ದಾಖಲೆ ತಯಾರಿಸಲ್ಪಟ್ಟಿತು |
| 400 | ಪರಿಶೀಲಿಸುವ ದೋಷ, ಅಥವಾ ವಲಯ_ uid ಕಾಣೆಯಾಗಿದೆ ಅಥವ ನಿಮ್ಮ ವಲಯಗಳಲ್ಲಿ ಒಂದೂ ಇಲ್ಲ |
GET returns one record. PUT replaces it and needs record_type, name, value and ttl. PATCH changes only the fields you send. DELETE removes the record and returns 204 with no body. Changes are published straight away. The NS records created with the zone are system records: updating or deleting them returns 403.
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 | ❍ ರೆಕಾರ್ಡ್ ಮಾಡಿ, ರೆಕಾರ್ಡ್ ಮಾಡಿ, ಅಥವಾ PATCH: |
| 204 | ಅಳಿಸಿ ಹಾಕಲಾಗಿದೆ. ಪ್ರತ್ಯುತ್ತರಕ್ಕೆ ಯಾವುದೇ ದೇಹವಿಲ್ಲ. |
| 400 | ಪರಿಶೀಲಿಸುವ ದೋಷ |
| 403 | ದಾಖಲೆಯು ಒಂದು ವ್ಯವಸ್ಥೆಯ ದಾಖಲೆ ಅಥವಾ ಅಗತ್ಯವಾದ ಸೂಚಕಕ್ಕೆ ಅನುಮತಿಯಿಲ್ಲ |
| 404 | ಕಂಡು ಬಂದಿಲ್ಲ, ಅಥವಾ ಅದು ಬೇರೊಂದು ಖಾತೆಗೆ ಸೇರಿದ್ದಾಗಿದೆ |
ಪರಿಶೀಲಿಸುವ ದೋಷಗಳು 400 ಅನ್ನು ಹೊಲದ ಹೆಸರಿನಿಂದ ಸೂಚಿಸಲಾದ ತೊಂದರೆಗಳೊಂದಿಗೆ ಮರಳಿಸುತ್ತವೆ:
{
"priority": ["MX records require a priority value"]
}
Query the VPS.org nameservers directly to confirm a change is live before your registrar delegation or resolver caches catch up:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com