VPS.org API

REST API dokumentáció

DNS-kezelő API

A DNS-zónák létrehozása és a rekordok kezelése. A zónákat ns1.vps.org, ns2.vps.org és ns3.vps.org szolgálja.

Végpontok 13
Alapút /api/v1/dns-zones, /api/v1/dns-records

Áttekintés

A zóna tartja a rekordokat egy domain. Minden változás, amit az API-n keresztül tesz, azonnal a VPS.org névszerverek. Ahhoz, hogy egy tartomány ezek a zónák, állítsa be a neveszerverek a regiszter ns1.vps.org, ns2.vps.org és ns3.vps.org.

A változtatások mentése és közzététele egy lépésben történik: ha a névszerverek visszautasítják a változást, a kérés 502 értéket ad vissza, és semmi sem menthető. Egy zóna nem hozható létre egy domain számára egy másik fiók már kezeli, egy másik számla zónájának szülője vagy gyermeke, vagy egy VPS.org fenntartott név.

Szükséges engedély: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

KAP /api/v1/dns-zones/

Az összes DNS-zóna listázása

Visszaadja a zónákat, a legújabbat, 25 oldalonként. A rekordok nem szerepelnek itt; egy zónát kapsz értük.

Lekérdezési paraméterek

Paraméter Típus Kívánt Leírás
domain string Nem. Csak a zónát adja vissza pontosan ezzel a domain névvel
page integer Nem. Oldalszám, 1-től kezdődően

Példa kérés

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);

Példaválasz

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

Válaszmezők

Mező Típus Leírás
uuid string Övezetazonosító
domain string Domain név, kisbetűben tárolva
created_at datetime Teremtési idő (ISO 8601, UTC)
record_count integer A zónában tárolt nyilvántartások száma, beleértve a három NS-nyilvántartást

Válasz állapotkódok

200 Siker
403 Hiányzó vagy érvénytelen API token, vagy a token hiányzik a szükséges engedély
HÓNAPPAL KÉSŐBB /api/v1/dns-zones/

DNS- zóna létrehozása

Létrehoz egy zónát és közzéteszi azt. A zóna három NS rekorddal kezdődik ns1, ns2 és ns3.vps.org esetén, amelyek rendszer rekordok, és nem lehet szerkeszteni vagy törölni.

Kérés törzsének paraméterei

Paraméter Típus Kívánt Leírás
domain string Igen A domain név, például a.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"}'

Példaválasz

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

Válasz állapotkódok

201 A zóna létrehozása
400 Hiányzó vagy érvénytelen domain név
KAP /api/v1/dns-zones/{uuid}/

A DNS-zóna részletei

Egy zónát ad vissza, minden rekordjával egy adatsorban. A válasznak ugyanolyan alakja van, mint a fenti válasznak.

curl -X GET "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Válasz állapotkódok

200 Siker
404 Nem található, vagy más számlához tartozik.
TÖRÖL /api/v1/dns-zones/{uuid}/

A DNS- zóna törlése

Eltávolítja a zónát mindhárom névszervertől, ellenőrzi, hogy egyikük sem szolgálja még mindig, majd törli a zónát és annak feljegyzéseit. Ha a névszerver még mindig válaszol a zónára, a kérés nem sikerül, és a zóna megmarad, így újra lehet próbálni.

curl -X DELETE "https://admin.vps.org/api/v1/dns-zones/c7a1e3f0-2b4d-4e6a-9c8b-0d1f2e3a4b5c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Válasz állapotkódok

204 A válasznak nincs holtteste.
400 A zóna neve még mindig a zónát szolgálja. A zónát nem törölték; a részletes mező felsorolja a hibákat.
404 Nem található, vagy más számlához tartozik.
KAP HÓNAPPAL KÉSŐBB /api/v1/dns-zones/{uuid}/records/

Lista vagy adatfelvétel hozzáadása egy zónában

GET visszatér minden rekord a zónában, mint egy sima tömb (nem paginált), válogatott típus és név szerint. POST hozzáad egy rekordot a zónában, és közzéteszi azt.

Kérés törzsének paraméterei (POST)

Paraméter Típus Kívánt Leírás
record_type string Igen A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Igen @ a domain vagy egy olyan címke, mint a www. Nevek tárolódnak kisbetűben.
value string Igen A rekordadatok, például IP-cím vagy hostname. A gépneveknek nincs szükségük nyomkövető pontra és a TXT értékekre nincs szükségük idézőjelekre; a lemez közzétételekor mindkettővel bővül.
ttl integer Igen Ideje másodpercek alatt élni.
priority integer Kizárólag MX és SRV Az MX és SRV rekordok esetében szükséges, és minden más típus esetében figyelmen kívül hagyva.

Példa kérés

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())

Példaválasz

{
  "uuid": "9d430082-5562-42b4-a0b2-12a6f6c862f9",
  "record_type": "MX",
  "name": "@",
  "value": "mail.example.com",
  "ttl": 3600,
  "priority": 10,
  "created_at": "2026-09-14"
}

Válaszmezők

Mező Típus Leírás
uuid string Az /api/v1/dns-rekordok/ végpontok által használt rekordazonosító
priority integer | null Az MX és az SRV rekordok prioritása, egyébként semmi
created_at date A létrehozás dátuma (É-HH-NN), idő nélkül

Válasz állapotkódok

200 GET: a zóna feljegyzései
201 POST: rekord létrehozása
400 Érvényesítési hiba, például ismeretlen rekordtípus, hiányzó ttl vagy MX vagy SRV rekord prioritás nélkül
404 Nem található, vagy más számlához tartozik.
HÓNAPPAL KÉSŐBB /api/v1/dns-zones/{uuid}/sync/

A zóna újbóli közzététele

A zóna és minden rekordja újra a névszerverekhez kerül. A rekordváltozások automatikusan megjelennek, de a kiadó a legjobb erőfeszítés, és a hiba nem bukik meg az eredeti kérésen, így ezt akkor használja, ha a változás nem jelenik meg a DNS keresésben. Nincs szükség a kérésre.

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"
}
KAP HÓNAPPAL KÉSŐBB /api/v1/dns-records/

Lista vagy rekordok létrehozása a zónákon keresztül

GET visszatér az összes zóna, 25 oldal, megrendelt domain, típus és név. POST létrehoz egy rekord, mint a zóna rekord végpont, de veszi a zóna a szervezetben, mint zóna_uuid.

Lekérdezési paraméterek

Paraméter Típus Kívánt Leírás
zone string Nem. Csak a zóna feljegyzései ezzel az uuddal
record_type string Nem. Csak ilyen típusú feljegyzések, például MX (eseti érzéketlenség)
page integer Nem. Oldalszám, 1-től kezdődően
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"
    }
  ]
}

Válasz állapotkódok

200 GET: siker
201 POST: rekord létrehozása
400 Érvényesítési hiba, vagy a zóna_uuid hiányzik vagy nem az Ön zónái
KAP PUT PATCH TÖRÖL /api/v1/dns-records/{uuid}/

A rekord letöltése, frissítése vagy törlése

GET visszatér egy rekord. PUT helyettesíti azt, és szüksége van rekord_type, név, érték és ttl. PATCH csak a mezőket küld. DELETE eltávolítja a rekordot, és visszatér 204 test nélkül. Változások kerülnek nyilvánosságra azonnal. Az NS rekordok létrehozott zóna rendszer rekordok: frissítése vagy törlése visszatér 403.

Ha az MX vagy SRV rekord prioritását figyeled, akkor küldd el a rekord_type-ot ugyanabban a kérésben. A PATCH- test prioritással rendelkezik, de a rekord_type nélkül az elsődlegesség megszűnik.
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}'

Válasz állapotkódok

200 GYERÜNK, UT VAGY PATCH: a rekord
204 A válasznak nincs holtteste.
400 Érvényesítési hiba
403 A rekord egy rendszer rekord, vagy a token hiányzik a szükséges engedély
404 Nem található, vagy más számlához tartozik.

Hibakezelés

A hitelesítési hibák 400-at adnak vissza a mezőnévvel kulcsolt problémával:

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

A DNS-változások tesztelése

A VPS.org névszerverek lekérdezése közvetlenül a változás megerősítésére élőben, mielőtt a regisztrátor delegálás vagy a feloldó gyorsítótár felzárkózna:

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