Twórz strefy DNS i zarządzaj ich rekordami. Strefy są obsługiwane przez serwery ns1.vps.org, ns2.vps.org i ns3.vps.org.
Strefa posiada zapisy dla jednej domeny. Każda zmiana, jaką dokonasz przez API, jest przycisnięta do serwerów nazw VPS.org. Aby służyć domenie z tych stref, ustaw serwerzy nazwy na serwerze rejestracyjnym na adres nr1.vps.org, ns2.vps.org i ns3.vps.org.
Zmiany są zapisywane i publikowane w jednym kroku: jeśli serwery nazw odmawiają zmiany, wniosek zwraca 502 i nic nie jest zapisywany. Strefa nie może być utworzona dla domeny, która zarządza już innym kontom, rodzicem lub dzieckiem strefy innego konta, lub zarezerwowaną nazwę VPS.org.
Wymagane zezwolenie:
dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*
Zwraca swoje strefy, najnowsze, 25 na stronę. Nie są tu rejestry; aby je dostać, należy pobrać jedną strefę.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
domain |
string | Nie. | Zwracaj tylko strefę o dokładnie tej nazwie domeny |
page |
integer | Nie. | Numer strony, zaczynając od 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
}
]
}
| Pole | Typ | Opis |
|---|---|---|
uuid |
string | Identyfikator strefy |
domain |
string | Nazwa domeny, zapisana w małych |
created_at |
datetime | Czas tworzenia (ISO 8601, UTC) |
record_count |
integer | Liczba rejestrów w strefie, w tym trzech rejestrów NS |
| 200 | Sukces |
| 403 | Brak lub nieprawidłowy token API, lub token brakuje wymaganego pozwolenia |
Stworzy strefę i publikuje ją. Strefa zaczyna się od trzech zapisów NS dla ns1, ns2 i ns3.vps.org, które są zapisami systemu i nie mogą być edytowane ani usuwane.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
domain |
string | Tak | Nazwa domeny, na przykład.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 | Strefa stworzona |
| 400 | Brak lub nieprawidłowa nazwa domeny |
Zwraca jedną strefę z wszystkimi jego zapisami w tablicy rejestrów. Odpowiedź ma taki sam kształt, jak odpowiedź wyżej.
curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 200 | Sukces |
| 404 | Nie znaleziono, albo należy do innego konta |
Usuwa strefę z wszystkich trzech serwerów nazw, sprawdza, czy żaden z nich nie służy jej, a następnie usuwa strefę i jego zapisy. Jeśli serwer nazw wciąż odpowiada na strefę, wniosek się nie powiodą i strefa jest przechowywana tak, aby można było ponownie sprawdzić.
curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
| 204 | Usunięto. Odpowiedź nie ma ciała. |
| 400 | Obsługa serwera nazw jest nadal obsługowana. Strefa nie została usunięta; w pole szczegółowym wyświetlono błędy. |
| 404 | Nie znaleziono, albo należy do innego konta |
GE zwraca każdy rekord w strefie jako tablica zwykła (niepaginowana), sortowana według typu i nazwy. POST dodaje rekord do strefy i publikuje go.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
record_type |
string | Tak | A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA |
name |
string | Tak | @ dla samej domeny, lub etykieta jak www. Nazwy są przechowywane w małych. |
value |
string | Tak | Dane zapisowe, na przykład adres IP lub nazwa użytkownika. Nazwa komputera nie potrzebuje kończącej się wartości punktu, a wartości TXT nie potrzebują cytatów; obie są dodawane po opublikowaniu zapisu. |
ttl |
integer | Tak | Czas na życie w sekundach |
priority |
integer | Tylko MX i SRV | Wymagane dla zapisów MX i SRV i ignorowane dla każdego innego typu. Dla SRV, umieścić wagę, port i docelowy wartość. |
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"
}
| Pole | Typ | Opis |
|---|---|---|
uuid |
string | Identyfikator rejestru, stosowany przez rejestry /api/v1/dns/ punkty końcowe |
priority |
integer | null | Priorytet dla rejestrów MX i SRV, w przeciwnym razie nule |
created_at |
date | Tylko data utworzenia (R-MM-DD), bez czasu |
| 200 | Zapisy strefy |
| 201 | POST: zapis stworzony |
| 400 | Błąd weryfikacji, na przykład nieznany typ zapisu, brak ttl, lub MX lub SRV rekord bez priorytetu |
| 404 | Nie znaleziono, albo należy do innego konta |
Przekłada strefę i wszystkie jego zapisy do serwerów nazw. Zmiany zapisów są publikowane automatycznie, ale wydawanie to najlepszy wysiłek i niepowodzenie nie zawiodą pierwotnego żądania, więc użyj tego, gdy zmiana nie pojawia się w wyszukiwaniach DNS. Nie jest potrzebne żadne ciało.
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 zwraca zapisy wszystkich stref, 25 na stronę, zamówione według domeny, typu i nazwy. POST tworzy rekord jak punkt końcowy strefy, ale przejmuje strefę w organizmie jako zone_uuid.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
zone |
string | Nie. | Tylko rejestry strefy z tym uuid |
record_type |
string | Nie. | Tylko zapisy tego typu, na przykład MX (nieczuleństwo przypadku) |
page |
integer | Nie. | Numer strony, zaczynając od 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: sukces |
| 201 | POST: zapis stworzony |
| 400 | Błąd weryfikacji, lub zone_uuid brakuje lub nie jest jedną z waszych stref |
GET zwraca jeden zapis. PUT zastępuje go i potrzebuje zapisu typu, nazwy, wartości i ttl. PATCH zmienia tylko pola, które wyślesz. DELETE usuwa zapis i zwraca 204 bez ciała. Zmiany są publikowane natychmiast. Zapisy NS stworzone z strefy są rejestrami systemu: aktualizacja lub usuwanie ich zwraca 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 | GOT, PUT lub PATCH: rekord |
| 204 | Usunięto. Odpowiedź nie ma ciała. |
| 400 | Błąd weryfikacji |
| 403 | Zapis jest rejestrem systemu, lub token brakuje wymaganego pozwolenia |
| 404 | Nie znaleziono, albo należy do innego konta |
Błędy weryfikacji zwracają 400 z problemem załączonym pod nazwą pola:
{
"priority": ["MX records require a priority value"]
}
Zapytaj serwery nazw VPS.org bezpośrednio, aby potwierdzić zmianę jest na żywo przed Twoim delegacją rejestracyjną lub klapsami rozdzielczymi:
dig @ns1.vps.org example.com A
dig @ns2.vps.org example.com MX
dig @ns3.vps.org www.example.com