VPS.org API

REST API dokumentacija

API za upravljanje DNS-om

Programski upravljajte DNS zonama i zapisima za svoje domene.

Krajnje tačke 4 krajnje tačke
Osnovni put /api/v1/dns-zones
Autentifikacija Potreban nosilac

Pregled

DNS API omogućava potpuno upravljanje DNS zonama i zapisima. Sve zone su smještene na VPS.org-im autoritativnim nameserverima sa automatskim BIND9 zonama za generiranje i implementaciju datoteka.

Nameserver Infrastructure

Ključne osobine

Autentifikacija

Svi DNS API zahtjevi zahtijevaju Bearer token autentifikaciju. Generirajte API tokene sa vašeg računa na /account/developers/ sa sljedećim dozvolama:

Primjer

Authorization: Bearer vps_abc123def456...
Važno: API tokenovi se prikazuju samo jednom tokom kreiranja. Čuvajte ih na sigurnom. Ako izgubite token, morate generirati novi.
DOBITI /api/v1/dns-zones/

Prikaži sve DNS zone

Dohvati straniciranu listu svih DNS zona koje posjeduje ovlašteni korisnik. Podržava filtriranje po imenu domena.

Parametri upita

Parametar Tip Obavezno Opis
domain string Ne, ne, 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}/

Preuzmi detalje o DNS zoni

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

Parametri puta

Parametar Tip Obavezno 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 nameservera.

Zahtjev za parametre tijela

Parametar Tip Obavezno 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
IZBRIŠI /api/v1/dns-zones/{uuid}/

Brisanje DNS zone

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

Parametri puta

Parametar Tip Obavezno 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/

Pokaži DNS zapise u zoni

Dohvati sve DNS zapise za određenu zonu (ugniježđenu rutu).

Parametri puta

Parametar Tip Obavezno 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/

Napravi DNS zapis u zoni

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

Zahtjev za parametre tijela

Parametar Tip Obavezno 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}/

Upravljaj DNS zapisima (direktni pristup)

Full 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.)

Primjeri: 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, ne, ne.
AAAA Maps domain to IPv6 address 2001:0db8::1 Ne, ne, ne.
CNAME Creates alias to another domain example.com Ne, ne, ne.
MX Mail server for domain mail.example.com Da
TXT Text record (SPF, DKIM, verification) v=spf1 include:_spf.google.com ~all Ne, ne, ne.
NS Nameserver delegation ns1.example.com Ne, ne, ne.
SRV Service location record 10 5060 sip.example.com Da
CAA Certificate authority authorization 0 issue "letsencrypt.org" Ne, ne, ne.

Najbolje prakse

Konfiguracija

Uobičajeni uzorci

Sigurnost

Rad s greškama

Uobičajene greške

Statusni kod Greška Rješenje
400 Nevažeće ime domene Osigurajte da domena slijedi konvencije DNS imenovanja
400 MX zapis zahtijeva prioritet Uključi priority polje za MX i SRV zapise
401 Nevažeći API token Format tokena za provjeru (mora početi sa vps_)
403 Nedostaje dozvola Generiraj novi token sa potrebnim dns:* _Dozvole
404 Zona/zapis nije pronađen Provjeri UUID i osiguraj da resurs pripada tvom računu

Primjer odgovora na grešku

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

Testiranje DNS promjena

Provjeri propagiranje 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 internetskih alata