VPS.org API

Dokumentado de REST API

DNS-Administrada API

Administru DNS-zonojn kaj rekordojn programece por viaj domajnoj.

Finpunktoj 4 finpunktoj
Baza Pado /api/v1/dns-zones
Aŭtentigo Necesa portanto- etikedo

Superrigardo

La DNS API provizas plenan administradon de DNS- zonoj kaj registroj. Ĉiuj zonoj estas gastigataj sur la aŭtoritataj nomserviloj de VPS.org kun aŭtomata BIND9- zona dosiergenerado kaj disvastigo.

Nomoservila infrastrukturo

Ĉefaj ecoj

Aŭtentigo

Ĉiuj DNS API-petoj postulas aŭtentigon per portanta signoĉeno. Generu API-signojn el via kont-aparataro ĉe /account/developers/ kun la sekvaj permesoj:

Ekzemplo

Authorization: Bearer vps_abc123def456...
Grava: API- tokenoj estas montritaj nur unufoje dum kreado. Konservu ilin sekure. Se vi perdas tokenon, vi devas krei novan.
AKIRU /api/v1/dns-zones/

Listigi Ĉiujn DNS-Zonojn

Elpreni paĝigan liston de ĉiuj DNS- zonoj posedataj de la aŭtentigita uzanto. Subtenas filtradon laŭ retregiona nomo.

Demandparametroj

Parametroj Tipo Bezonata Priskribo
domain string No Filter zones by exact domain name (e.g., example.com)

Ekzempla Peto

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

Ekzempla Respondo

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

Respondaj Kampoj

Kampo Tipo Priskribo
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

Respondaj Statusaj Kodoj

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

Preni DNS- zonajn detalojn

Preni detalan informon pri specifa DNS- zono, inkluzive de ĉiuj registroj.

Padaj Parametroj

Parametroj Tipo Bezonata Priskribo
uuid string Jes Unique zone identifier

Ekzempla Respondo

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

Respondaj Statusaj Kodoj

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

Krei DNS- zonon

Krei novan DNS- zonon por retregiono. La zono estos tuj disvastigata al VPS.org nomserviloj.

Parametroj de la petokorpo

Parametroj Tipo Bezonata Priskribo
domain string Jes Domain name (e.g., example.com)

Ekzempla Peto

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

Ekzempla Respondo

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

Respondaj Statusaj Kodoj

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

Forigi DNS- zonon

@ action: button

Padaj Parametroj

Parametroj Tipo Bezonata Priskribo
uuid string Jes Unique zone identifier

Respondaj Statusaj Kodoj

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

Listigi DNS- erojn en zono

Preni ĉiujn DNS-registrojn por specifa zono (nestita vojo).

Padaj Parametroj

Parametroj Tipo Bezonata Priskribo
uuid string Jes Zone UUID

Ekzempla Peto

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

Ekzempla Respondo

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

Krei DNS- eron en Zono

Aldoni novan DNS- eron al specifa zono (nestita vojo).

Parametroj de la petokorpo

Parametroj Tipo Bezonata Priskribo
record_type string Jes Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Jes Record name (@ for root, subdomain, or FQDN)
value string Jes 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)

Ekzempla Peto

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

Respondaj Statusaj Kodoj

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

Administri DNS- erojn (rekta aliro)

La tuta CRUD operacioj sur individuaj DNS registroj uzante rekordon UUID.

Uzeblaj operacioj

Demandparametroj (por GET /api/v1/dns-records/)

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

Ekzemplo: Aktualigi TTL de rekordo

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

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

Plej bonaj praktikoj

TTL- agordo

Komunaj ŝablonoj

Sekureco

Erarotraktado

Oftaj eraroj

Statusa Kodo Eraro Solvo
400 Nevalida retregiona nomo Certigu, ke la retregiono sekvas la DNS- nomkonvenciojn
400 MX- rekordo bezonas prioritaton Enhavi priority kampo por MX kaj SRV rekordoj
401 Nevalida API-token Kontroli la token- formaton (devas komenci per vps_)
403 Mankas permeso @ info dns:* Permesoj
404 Ne trovis zonon/registron Kontroli UUID kaj certigi ke la rimedo apartenas al via konto

Ekzemplo de erarorespondo

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

Testante DNS- ŝanĝojn

Verigi rekordan propagadon

# 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

Uzi retajn ilojn