VPS.org API

Dokumentace REST API

API pro správu DNS

Spravujte zóny a záznamy DNS programově pro vaše domény.

Koncové body 4 koncové body
Základní cesta /api/v1/dns-zones
Ověřování Požadován žeton medvěda

Přehled

DNS API poskytuje plnou správu DNS zón a záznamů. Všechny zóny jsou hostovány na VPS.org autoritativních jmenserverů s automatickou BIND9 zónou tvorby souborů a nasazení.

Infrastruktura nameserveru

Klíčové funkce

Ověřování

Všechny DNS API požadavky vyžadují Bearer žeton autentizace. Generovat API žetony z vašeho účtu palubní desku na /account/developers/ s těmito povoleními:

Příklad

Authorization: Bearer vps_abc123def456...
Důležité: API žetony jsou zobrazeny pouze jednou během tvorby. Uložte je bezpečně. Pokud ztratíte žeton, musíte vytvořit nový.
ZÍSKAT /api/v1/dns-zones/

Zobrazit všechny DNS zóny

Získejte seznam všech zón DNS vlastněných ověřeným uživatelem. Podporuje filtrování podle jména domény.

Parametry dotazu

Parametr Typ Požadovaný Popis zboží
domain string Ne. Filter zones by exact domain name (e.g., example.com)

Příklad žádosti

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
  -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)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  headers: {'Authorization': 'Bearer YOUR_API_TOKEN'}
});

const zones = await response.json();
console.log(zones);

Příklad odpovědi

[
  {
    "uuid": "abc123-def456-ghi789",
    "domain": "example.com",
    "created_at": "2024-01-15T10:30:00Z",
    "record_count": 12
  },
  {
    "uuid": "xyz789-uvw456-rst123",
    "domain": "myapp.io",
    "created_at": "2024-06-20T14:15:00Z",
    "record_count": 8
  }
]

Pole odpovědí

Pole Typ Popis zboží
uuid string Unique zone identifier (used in API requests)
domain string Domain name for this DNS zone
created_at datetime Zone creation timestamp (ISO 8601 format)
record_count integer Total number of DNS records in this zone

Kódy stavu odpovědi

200 Successfully retrieved DNS zones list
401 Unauthorized - Invalid or missing API token
403 Forbidden - Token lacks dns:list permission
ZÍSKAT /api/v1/dns-zones/{uuid}/

Získejte detaily DNS zóny

Získejte podrobné informace o konkrétní zóně DNS, včetně všech záznamů.

Parametry cesty

Parametr Typ Požadovaný Popis zboží
uuid string Ano Unique zone identifier

Příklad odpovědi

{
  "uuid": "abc123-def456-ghi789",
  "domain": "example.com",
  "created_at": "2024-01-15T10:30:00Z",
  "record_count": 5,
  "records": [
    {
      "uuid": "rec-001",
      "record_type": "A",
      "name": "@",
      "value": "192.0.2.1",
      "ttl": 3600,
      "priority": null,
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "uuid": "rec-002",
      "record_type": "MX",
      "name": "@",
      "value": "mail.example.com",
      "ttl": 3600,
      "priority": 10,
      "created_at": "2024-01-15T10:32:00Z"
    }
  ]
}

Kódy stavu odpovědi

200 Successfully retrieved zone details
404 Zone not found or not owned by user
POST /api/v1/dns-zones/

Vytvořit zónu DNS

Vytvořte novou DNS zónu pro doménu. Zóna bude okamžitě nasazena na VPS.org jmenných serverů.

Parametry těla požadavku

Parametr Typ Požadovaný Popis zboží
domain string Ano Domain name (e.g., example.com)

Příklad žádosti

cURL
Python
JavaScript
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "newdomain.com"}'
import requests

url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {"domain": "newdomain.com"}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({domain: 'newdomain.com'})
});

const zone = await response.json();
console.log(zone);

Příklad odpovědi

{
  "uuid": "new-zone-uuid",
  "domain": "newdomain.com",
  "created_at": "2026-01-18T16:45:00Z",
  "record_count": 0,
  "records": []
}

Kódy stavu odpovědi

201 DNS zone created successfully
400 Bad Request - Invalid domain name or zone already exists
403 Forbidden - Token lacks dns:create permission
VYMAZAT /api/v1/dns-zones/{uuid}/

Smazat oblast DNS

Trvale smažte zónu DNS a všechny související záznamy. Tato akce nemůže být zrušena.

Parametry cesty

Parametr Typ Požadovaný Popis zboží
uuid string Ano Unique zone identifier

Kódy stavu odpovědi

204 Zone deleted successfully (no response body)
403 Forbidden - Token lacks dns:delete permission
404 Zone not found
ZÍSKAT /api/v1/dns-zones/{uuid}/records/

Seznam DNS záznamů v zóně

Získejte všechny záznamy DNS pro určitou zónu (vyčištěnou trasu).

Parametry cesty

Parametr Typ Požadovaný Popis zboží
uuid string Ano Zone UUID

Příklad žádosti

curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Příklad odpovědi

[
  {
    "uuid": "rec-001",
    "record_type": "A",
    "name": "@",
    "value": "192.0.2.1",
    "ttl": 3600,
    "priority": null,
    "created_at": "2024-01-15T10:30:00Z"
  },
  {
    "uuid": "rec-002",
    "record_type": "MX",
    "name": "@",
    "value": "mail.example.com",
    "ttl": 3600,
    "priority": 10,
    "created_at": "2024-01-15T10:32:00Z"
  }
]
POST /api/v1/dns-zones/{uuid}/records/

Vytvořit DNS záznam v zóně

Přidat nový DNS záznam do určité zóny (vyčištěná trasa).

Parametry těla požadavku

Parametr Typ Požadovaný Popis zboží
record_type string Ano Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Ano Record name (@ for root, subdomain, or FQDN)
value string Ano Record value (IP address, hostname, text)
ttl integer No Time to live in seconds (default: 3600)
priority integer For MX/SRV Priority (required for MX and SRV records)

Příklad žádosti

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
  }'
import requests

url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
}
data = {
    "record_type": "A",
    "name": "www",
    "value": "192.0.2.1",
    "ttl": 3600
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

Kódy stavu odpovědi

201 DNS record created successfully
400 Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
GET PUT PATCH DELETE /api/v1/dns-records/{uuid}/

Správa DNS záznamů (Direct Access)

Plné CRUD operace na jednotlivých DNS záznamů pomocí záznamu UUID.

Dostupné operace

Parametry dotazu (pro GET /api/v1/dns-records/)

Parameter Typ Popis zboží
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

Příklad: Aktualizovat TTL záznamu

curl -X PATCH "https://admin.vps.org/api/v1/dns-records/{rec-uuid}/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ttl": 1800}'

Supported DNS Record Types

Typ Purpose Example Value Priority Required
A Maps domain to IPv4 address 192.0.2.1 Ne.
AAAA Maps domain to IPv6 address 2001:0db8::1 Ne.
CNAME Creates alias to another domain example.com Ne.
MX Mail server for domain mail.example.com Ano
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all Ne.
NS Nameserver delegation ns1.example.com Ne.
SRV Service location record 10 5060 sip.example.com Ano
CAA Certificate authority authorization 0 issue "letsencrypt.org" Ne.

Nejlepší praxe

TTL konfigurace

Vzory

Bezpečnost

Chyba při manipulaci

Časté chyby

Stavový kód Chyba Roztok
400 Neplatný název domény Zajistit doménu následující DNS pojmenování konvencí
400 Záznam MX vyžaduje prioritu Zahrnout priority pole pro záznamy MX a SRV
401 Neplatný token API Zkontrolovat formát žetonu (musí začít s vps_)
403 Chybějící povolení Generovat nový žeton s požadovaným dns:* oprávnění
404 Oblast/záznam nenalezen Ověřit UUID a zajistit, aby zdroj patřil k vašemu účtu

Příklad Chybová odpověď

{
  "detail": "MX records require a priority value",
  "error_code": "validation_error",
  "field": "priority"
}

Testování změn DNS

Ověřit šíření záznamů

# Query A record
dig example.com A

# Query specific nameserver
dig @ns1.vps.org example.com

# Query MX records
dig example.com MX

# Check all records
dig example.com ANY

Používání online nástrojů