VPS.org API

REST API dokumentacija

API za upravljanje DNS-om

Programski upravljajte DNS zonama i zapisima za svoje domene.

Krajnje točke 4 krajnje točke
Osnovni put /api/v1/dns-zones
Autentifikacija Nositelj je potreban

Pregled

DNS API pruža puno upravljanje DNS zonama i zapisima. Sve zone su domaćini na VPS.org autorititetnim serverima imena s automatskim BIND9 generiranjem i raspoređivanjem zone datoteka.

Infrastruktura nazivnog servera

Ključne osobine

Autentifikacija

Svi DNS API zahtjevi zahtijevaju Bearer žetone autentičnost. Generirati API žetone iz vašeg računa na ploči /account/developers/ sa sljedećim dozvolama:

Primjer

Authorization: Bearer vps_abc123def456...
Važno: API žetoni su prikazani samo jednom tijekom stvaranja. Spremite ih sigurno. Ako izgubite žeton, morate stvoriti novi.
DOBITI /api/v1/dns-zones/

Popis svih DNS zona

Dobavi paginiranu listu svih DNS zona u vlasništvu autoriziranog korisnika. Podržava filtriranje po imenu domene.

Parametri upita

Parametri Tip Potreban Opis
domain string Ne. Filter zones by exact domain name (e.g., example.com)

Primjer zahtjeva

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

Primjer 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 Tip 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

Kodovi statusa odgovora

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

Detalji o DNS zoni

Dobavi detaljne informacije o određenoj DNS zoni, uključujući sve zapise.

Parametri puta

Parametri Tip Potreban Opis
uuid string Da Unique zone identifier

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

Kodovi statusa odgovora

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

Napravi DNS zonu

Napravi novu DNS zonu za domenu. Zona će biti odmah raspoređena na VPS.org servera imena.

Zahtjev za parametre tijela

Parametri Tip Potreban Opis
domain string Da Domain name (e.g., example.com)

Primjer zahtjeva

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

Primjer odgovora

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

Kodovi statusa odgovora

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

Obriši DNS zonu

Trajno obriši DNS zonu i sve povezane zapise. Ova akcija se ne može poništiti.

Parametri puta

Parametri Tip Potreban Opis
uuid string Da Unique zone identifier

Kodovi statusa odgovora

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

Popis DNS zapisa u zoni

Dobavi sve DNS zapise za određenu zonu (navedenu rutu).

Parametri puta

Parametri Tip Potreban Opis
uuid string Da Zone UUID

Primjer zahtjeva

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

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

Kreiraj DNS zapis u zoni

Dodaj novi DNS zapis u određenu zonu (navedenu rutu).

Zahtjev za parametre tijela

Parametri Tip Potreban 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)

Primjer zahtjeva

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

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

Upravljanje DNS zapisima (Direct Access)

Potpuni CRUD operacije na pojedinačnim DNS zapisima koristeći rekord UUID.

Dostupne operacije

Parametri upita (za GET /api/v1/dns-records /)

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

Primjer: Ažuriraj 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

Tip 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.

Najbolje prakse

TTL podešavanje

Uobičajeni uzorci

Sigurnost

Rukovanje greškama

Uobičajene greške

Statusni kod Greška Otopina
400 Neispravno ime domene Osiguranje domene slijedi DNS konvencije za imenovanje
400 MX zapis zahtijeva prioritet Uključi priority polje za MX i SRV zapise
401 Neispravan API znak Provjeri token format (moram početi s vps_)
403 Nedostaje dozvola Generiraj novi žeton s potrebnim dns:* dozvole
404 Zona/snimak nije pronađen Provjerite UUID i osigurajte da resurs pripada vašem računu

Primjer odgovora na grešku

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

Testiranje promjena DNS-a

Potvrdi propagaciju 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

Korištenje online alata