Οι ζώνες που εξυπηρετούνται από ns1.vps.org, ns2.zqx0qz και ns3.zqx0qqz.
Μια ζώνη κατέχει τα αρχεία για ένα τομέα. Κάθε αλλαγή που κάνετε μέσω του API σπρώχνεται στους nameservers VPS.org αμέσως. Για να εξυπηρετήσει ένα τομέα από αυτές τις ζώνες, ρυθμίστε τους nameservers του στο ns1.zqx1qz, ns2.vps.org και ns3.vps.org.
Οι αλλαγές αποθηκεύονται και δημοσιεύονται σε ένα βήμα: εάν οι marineservers αρνούνται μια αλλαγή, η αίτηση επιστρέφει 502 και δεν σώζεται τίποτα. Μια ζώνη δεν μπορεί να δημιουργηθεί για έναν τομέα άλλο λογαριασμό που διαχειρίζεται ήδη, ένας γονιός ή παιδί της ζώνης ενός άλλου λογαριασμού, ή ένα όνομα που κρατάει VPS.org.
Απαιτείται άδεια:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Επιστρέφει τις ζώνες σας, νεότερη πρώτη, 25 ανά σελίδα. Τα αρχεία δεν περιλαμβάνονται εδώ?
| Parameter | Τύπος | Υποχρεούμαι | Description |
|---|---|---|---|
domain |
string | No | Επιστρέψτε μόνο τη ζώνη με ακριβώς αυτό το domain name |
page |
integer | No | Αριθμός σελίδας, ξεκινώντας από το 1 |
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 | Ναί | The domain name, for example 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 | Δεν βρέθηκε ή ανήκει σε άλλο λογαριασμό |
Αφαιρεί τη ζώνη από τους τρεις marineservers, ελέγχει ότι κανένας από αυτούς δεν την εξυπηρετεί ακόμα, και στη συνέχεια διαγράφει τη ζώνη και τα αρχεία της. Αν ένας nameserver εξακολουθεί να απαντά για τη ζώνη, το αίτημα αποτυγχάνει και η ζώνη διατηρείται έτσι ώστε να μπορείτε να ξαναπροσπαθήσετε.
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 επιστρέφει κάθε εγγραφή στη ζώνη ως απλή σειρά (δεν έχει σφηνωθεί), ταξινομείται ανά τύπο και όνομα.
| Parameter | Τύπος | Υποχρεούμαι | Description |
|---|---|---|---|
record_type |
string | Ναί | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Ναί | @ για τον ίδιο τον τομέα, ή μια ετικέτα όπως ο www. Names αποθηκεύονται σε χαμηλότερη περίπτωση. |
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/ τελικά σημεία |
priority |
integer | null | Προτεραιότητα για αρχεία MX και SRV, διαφορετικά μηδενικά |
created_at |
date | Μόνον ημερομηνία δημιουργίας (Ε-MM-ΗΗ), χωρίς χρονικό διάστημα |
| 200 | GET: τα αρχεία της ζώνης |
| 201 | POST: δημιουργία ρεκόρ |
| 400 | Σφάλμα επικύρωσης, για παράδειγμα άγνωστος τύπος εγγραφής, λείπει ttl, ή αρχείο MX ή SRV χωρίς προτεραιότητα |
| 404 | Δεν βρέθηκε ή ανήκει σε άλλο λογαριασμό |
Οι αλλαγές αρχείων δημοσιεύονται αυτόματα, αλλά η έκδοση είναι η καλύτερη προσπάθεια και μια αποτυχία δεν αποτυγχάνει στην αρχική αίτηση, έτσι ώστε να χρησιμοποιηθεί όταν μια αλλαγή δεν εμφανίζεται σε DNS lookups. Δεν απαιτείται σώμα αιτήματος.
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 επιστρέφει τα αρχεία όλων των ζωνών σας, 25 ανά σελίδα, που παραγγέλθηκαν ανά τομέα, τύπο και όνομα. Το POST δημιουργεί ένα αρχείο όπως το τελικό σημείο καταγραφής ζώνης, αλλά παίρνει τη ζώνη στο σώμα ως ζώνη_uid.
| Parameter | Τύπος | Υποχρεούμαι | Description |
|---|---|---|---|
zone |
string | No | Μόνο αρχεία της ζώνης με αυτό το uuid |
record_type |
string | No | Μόνο αρχεία αυτού του τύπου, για παράδειγμα MX (περιπτωση αναίσθητη) |
page |
integer | No | Αριθμός σελίδας, ξεκινώντας από το 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 | GET: επιτυχία |
| 201 | POST: δημιουργία ρεκόρ |
| 400 | Σφάλμα επικύρωσης ή Zone_uid λείπει ή δεν λείπει κάποια από τις ζώνες σας |
Το GET επιστρέφει ένα ρεκόρ. Το PUT αντικαθιστά και χρειάζεται το αρχείο, το όνομα, την αξία και την ttl. Το PATCH αλλάζει μόνο τα πεδία που στέλνετε. Το DELETE αφαιρεί την εγγραφή και επιστρέφει 204 χωρίς σώμα. Οι αλλαγές δημοσιεύονται αμέσως. Τα αρχεία NS που δημιουργούνται με τη ζώνη είναι αρχεία συστήματος: ενημέρωση ή διαγραφή τους επιστρέφει 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 | GET, PUT ή PATCH: το αρχείο |
| 204 | Η απάντηση δεν έχει πτώμα. |
| 400 | Σφάλμα επικύρωσης |
| 403 | Η εγγραφή είναι ένα αρχείο συστήματος, ή το σύμβολο στερείται της απαιτούμενης άδειας |
| 404 | Δεν βρέθηκε ή ανήκει σε άλλο λογαριασμό |
Τα σφάλματα επικύρωσης επιστρέφουν 400 με το πρόβλημα που κλειδώνεται με το όνομα πεδίου:
{
"priority": ["MX records require a priority value"]
}
Ερώτηση οι marineservers VPS.org άμεσα για να επιβεβαιώσετε μια αλλαγή είναι απευθείας ζωντανά πριν από την αντιπροσωπεία εγγραφής ή cructer σας caches προφθάσει:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com