VPS.org API

Dokumentace REST API

API pro správu DNS

Vytvořte DNS zóny a spravovat jejich záznamy. Zóny jsou podávány ns1.vps.org, ns2.vps.org a ns3.vps.org.

Koncové body 13
Základní cesta /api/v1/dns-zones, /api/v1/dns-records

Přehled

Zóna drží záznamy pro jednu doménu. Každá změna, kterou provedete prostřednictvím API, je tlačena do jmenných serverů VPS.org ihned. Chcete-li sloužit doménu z těchto zón, nastavte své jmenovky na registrátora ns1.vps.org, ns2.vps.org a ns3.vps.org.

Změny jsou uloženy a zveřejněny v jednom kroku: pokud jmenovkáři změnu odmítnou, žádost vrátí 502 a nic se neuloží. Zóna nemůže být vytvořena pro doménu jiný účet již spravuje, rodič nebo dítě v zóně jiného účtu, nebo VPS.org vyhrazené jméno.

Požadované povolení: dns:list (GET), dns:create (POST), dns:update (PUT, PATCH, sync), dns:delete (DELETE), dns:*

ZÍSKAT /api/v1/dns-zones/

Zobrazit všechny DNS zóny

Vrací vaše zóny, nejnovější první, 25 na stránku. Záznamy nejsou zahrnuty zde; přineste jednu zónu, aby je dostal.

Parametry dotazu

Parametr Typ Požadovaný Popis zboží
domain string Ne. Vrátit pouze zónu s přesně tímto doménovým názvem
page integer Ne. Číslo stránky, začínáme od 1

Příklad žádosti

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říklad odpovědi

{
  "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 odpovědí

Pole Typ Popis zboží
uuid string Identifikátor zóny
domain string Název domény, uložen v malém případě
created_at datetime Doba vytvoření (ISO 8601, UTC)
record_count integer Počet záznamů v oblasti včetně tří záznamů NS

Kódy stavu odpovědi

200 Úspěch
403 Chybí nebo neplatná API žeton, nebo žeton postrádá požadované povolení
POST /api/v1/dns-zones/

Vytvořit zónu DNS

Vytvoří zónu a zveřejní ji.Zóna začíná třemi NS záznamy pro ns1, ns2 a ns3.vps.org, které jsou systémové záznamy a nelze je editovat ani smazat.

Parametry těla požadavku

Parametr Typ Požadovaný Popis zboží
domain string Ano Název domény, například.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říklad odpovědi

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

Kódy stavu odpovědi

201 Vytvořená zóna
400 Chybí nebo je neplatný název domény
ZÍSKAT /api/v1/dns-zones/{uuid}/

Získejte detaily DNS zóny

Vrací jednu zónu se všemi záznamy v pole záznamů. Odezva má stejný tvar jako tvorba odezvy výše.

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

Kódy stavu odpovědi

200 Úspěch
404 Nenalezeno, nebo patří k jinému účtu
VYMAZAT /api/v1/dns-zones/{uuid}/

Smazat oblast DNS

Odstraňuje zónu ze všech tří jmenných serverů, kontroluje, zda ji nikdo z nich stále neslouží, a pak vymaže zónu a její záznamy. Pokud se na tuto zónu ještě někdo zodpovídá, žádost selže a zóna zůstane zachována, abyste se mohli znovu snažit.

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

Kódy stavu odpovědi

204 Odezva nemá tělo.
400 Zóna nebyla smazána; detailní pole uvádí chyby.
404 Nenalezeno, nebo patří k jinému účtu
ZÍSKAT POST /api/v1/dns-zones/{uuid}/records/

Seznam nebo Přidat záznamy v zóně

GET vrací každý záznam v zóně jako pole (nezobrazené), seřazené podle typu a jména. POST přidá záznam do zóny a zveřejní ho.

Parametry těla požadavku (POST)

Parametr Typ Požadovaný Popis zboží
record_type string Ano A, AAAA, CNAME, MX, NS, TXT, SRV, PTR, SOA, CAA
name string Ano @ pro doménu samotnou, nebo označení jako www. Jména jsou uložena v malém případě.
value string Ano Záznamová data, například IP adresa nebo jméno hostitele. Hostitelská jména nepotřebují steakovou tečku a TXT hodnoty nepotřebují citace; obě jsou při publikování záznamu přidávány.
ttl integer Ano Čas žít v sekundách
priority integer Pouze MX a SRV Potřebné pro MX a SRV záznamy a ignorované pro každý jiný typ. Pro SRV, dát hmotnost, port a cíl v hodnotě.

Příklad žádosti

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říklad odpovědi

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

Pole odpovědí

Pole Typ Popis zboží
uuid string Identifikační kód záznamu, který používá /api/v1/dns-records/endograms
priority integer | null Priorita pro MX a SRV záznamy, jinak nulová
created_at date Pouze datum vytvoření (R-MM-DD), bez času

Kódy stavu odpovědi

200 GET: záznamy zóny
201 POST: vytvořen záznam
400 Chyba validace, například neznámý typ záznamu, chybějící ttl nebo MX nebo SRV záznam bez priority
404 Nenalezeno, nebo patří k jinému účtu
POST /api/v1/dns-zones/{uuid}/sync/

Republish a Zone

Zatlačí zónu a všechny její záznamy do jmenoslužebníků znovu. Změny záznamu jsou zveřejněny automaticky, ale publikování je nejlepší úsilí a selhání nezklame původní požadavek, takže použijte, když změna se neukáže v DNS vyhledávače. Není potřeba žádat tělo.

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"
}
ZÍSKAT POST /api/v1/dns-records/

Seznam nebo vytvoření záznamů napříč zónami

GET vrací záznamy všech vašich zón, 25 na stránku, objednané podle domény, typu a názvu. POST vytváří záznam jako cílový bod záznamu zóny, ale bere zónu v těle jako zóna_uuid.

Parametry dotazu

Parametr Typ Požadovaný Popis zboží
zone string Ne. Pouze záznamy o zóně s tímto uuid
record_type string Ne. Pouze záznamy tohoto typu, například MX (případ necitlivý)
page integer Ne. Číslo stránky, začínáme 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"
    }
  ]
}

Kódy stavu odpovědi

200 GET: úspěch
201 POST: vytvořen záznam
400 Chyba ověření, nebo Zone_uuid chybí nebo není jedna z vašich zón
ZÍSKAT PUT PATCH VYMAZAT /api/v1/dns-records/{uuid}/

Získat, aktualizovat nebo smazat záznam

GET vrací jeden záznam. PUT jej nahrazuje a potřebuje záznam_typ, jméno, hodnotu a tl. PATCH mění pouze pole, která odešlete. DELETE odstraní záznam a vrátí 204 bez těla. Změny jsou zveřejněny ihned. Záznamy NS vytvořené s zónou jsou systémové záznamy: aktualizace nebo mazání těchto záznamů vrací 403.

Když zadáte PATCH prioritu záznamu MX nebo SRV, odešlete záznam_typ na stejný požadavek. Tělo PATCH s prioritou, ale bez záznamu_type vymaže prioritu.
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}'

Kódy stavu odpovědi

200 GET, PUT nebo PATCH: záznam
204 Odezva nemá tělo.
400 Chyba ověření
403 Záznam je záznam systému, nebo žeton postrádá požadované povolení
404 Nenalezeno, nebo patří k jinému účtu

Chyba při manipulaci

Chyby validace vrátí 400 s problémem, který je klíčován názvem pole:

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

Testování změn DNS

Dotaz na jmenné servery VPS.org přímo potvrdit změnu je živě před vaší registrátor delegace nebo řešitel caches dohnat:

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