VPS.org API

REST API dokumentacija

API za upravljanje DNS-a

Programsko upravljajte DNS cone in zapise za svoje domene.

Končne točke 4 končne točke
Osnovna pot /api/v1/dns-zones
Avtentikacija Nosilec token je potreben

Pregled

DNS API zagotavlja polno upravljanje DNS con in zapisov. Vsa območja so gostitelji na VPS.org avtomatičnih imenskih strežnikih z avtomatskim izdelavo in uvajanjem datotek BIND9 cone.

Infrastruktura imenskega strežnika

Ključne lastnosti

Avtentikacija

Vsi zahtevki DNS API zahtevajo prepoznavnost bearerjevega tokena. Ustvarite API žetone iz vaše plošče s računa na /account/developers/ z naslednjimi dovoljenji:

Primer

Authorization: Bearer vps_abc123def456...
Pomembno: API žetoni so prikazani le enkrat med ustvarjanjem. Shranite jih varno. Če izgubite žeton, morate ustvariti nov.
PRIDOBITE /api/v1/dns-zones/

Seznam vseh DNS con

Pridobite paginiran seznam vseh območij DNS, ki so v lasti avtentikiranega uporabnika. Podpira filtriranje po imenu domene.

Parametri poizvedbe

Parameter Vrsta Zahtevano Opis
domain string Ne Filter zones by exact domain name (e.g., example.com)

Primer zahteve

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

Primer odgovora

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

Polja za odgovor

Polje Vrsta Opis
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

Kode stanja odgovora

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

Poišči podrobnosti DNS cone

Pridobi podrobne informacije o določenem območju DNS, vključno z vsemi zapisi.

Parametri poti

Parameter Vrsta Zahtevano Opis
uuid string Da Unique zone identifier

Primer odgovora

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

Kode stanja odgovora

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

Ustvari DNS cono

Ustvari novo območje DNS za domeno. Območje bo takoj razporejeno na VPS.org imenskih strežnikov.

Zahtevajte parametre telesa

Parameter Vrsta Zahtevano Opis
domain string Da Domain name (e.g., example.com)

Primer zahteve

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

Primer odgovora

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

Kode stanja odgovora

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

Zbriši DNS cono

Trajno izbriši cono DNS in vse povezane zapise. To dejanje ni mogoče razveljaviti.

Parametri poti

Parameter Vrsta Zahtevano Opis
uuid string Da Unique zone identifier

Kode stanja odgovora

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

Seznam DNS zapisov v coni

Pridobi vse zapise DNS za določeno območje (navedena pot).

Parametri poti

Parameter Vrsta Zahtevano Opis
uuid string Da Zone UUID

Primer zahteve

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

Primer odgovora

[
  {
    "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/

Ustvari DNS zapis v coni

Dodaj nov zapis DNS v določeno območje (navedena pot).

Zahtevajte parametre telesa

Parameter Vrsta Zahtevano Opis
record_type string Da Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Da Record name (@ for root, subdomain, or FQDN)
value string Da 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)

Primer zahteve

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

Kode stanja odgovora

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}/

Upravljajte DNS Records (Direct Access)

Celotna operacija CRUD na posamičnih DNS zapisih z uporabo zapisa UUID.

Razpoložljive operacije

Parametri poizvedbe (za zapise GET /api/v1/dns /)

Parameter Vrsta Opis
zone string Filter records by zone UUID
record_type string Filter by record type (A, AAAA, MX, etc.)

Primer: Posodobi TTL zapisa

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

Vrsta 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 Da
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 Da
CAA Certificate authority authorization 0 issue "letsencrypt.org" Ne

Najboljše prakse

Nastavitve TTL

Pogosti vzorci

Varnost

Obvladovanje napak

Pogosti napaki

Koda stanja Napaka Raztopina
400 Neveljavno ime domene Zagotoviti domeno sledi konvencijam o imenovanju DNS
400 Rekord MX zahteva prednost Vključi priority polje za zapise MX in SRV
401 Neveljaven API token Preveri obliko žetona (mora se začeti z vps_)
403 Pogrešljivo dovoljenje Ustvari nov žeton z zahtevanim dns:* Dovoljenja
404 Območje/zaznam ni najden Preverite UUID in zagotovite, da vir pripada vašemu računu

Primer odziva na napako

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

Preizkušanje sprememb DNS

Preveri povečanje zapisa

# 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

Uporaba spletnih orodij