VPS.org API

REST API dokumentācija

DNS pārvaldības API

Programmatiski pārvaldiet savu domēnu DNS zonas un ierakstus.

Galapunkti 4 galapunkti
Bāzes ceļš /api/v1/dns-zones
Autentifikācija Vajadzīgs lādiņa žetons

Pārskats

DNS API nodrošina pilnīgu DNS zonu un ierakstu pārvaldību. Visas zonas atrodas VPS.org autoritatīvos nosaukumu servisos ar automātisku BIND9 zonas failu radīšanu un izvēršanu.

Nosaukumsservera infrastruktūra

Galvenās iezīmes

Autentifikācija

Visi DNS API pieprasījumi prasa Beaker žetonu autentificēšanu. Ģenerējiet API žetonus no sava konta paneļa /account/developers/ ar šādām atļaujām:

Piemērs

Authorization: Bearer vps_abc123def456...
Svarīgs: API žetoni tiek rādīti tikai vienu reizi radīšanas laikā. Glabāt tos droši. Ja zaudējat žetonu, jums ir nepieciešams ģenerēt jaunu.
IEGŪT /api/v1/dns-zones/

Uzskaitīt visas DNS zonas

Iegūst izdomātu sarakstu ar visām DNS zonām, kas pieder autentificētam lietotājam. Palīdz filtrēt pēc domēna vārda.

Vaicājuma parametri

Parametrs Tips Obligāti Apraksts
domain string Filter zones by exact domain name (e.g., example.com)

Pieprasījuma piemērs

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

Atbildes piemērs

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

Atbildes lauki

Lauks Tips Apraksts
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

Atbildes statusa kodi

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

Iegūst DNS zonas detaļas

Iegūst detalizētu informāciju par konkrētu DNS zonu, ieskaitot visus ierakstus.

Ceļa parametri

Parametrs Tips Obligāti Apraksts
uuid string Unique zone identifier

Atbildes piemērs

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

Atbildes statusa kodi

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

Izveidot DNS zonu

Izveidot jaunu DNS zonu domēnam. Zona tiks nekavējoties izvietota VPS.org vārdu serveriem.

Pieprasījuma pamatteksta parametri

Parametrs Tips Obligāti Apraksts
domain string Domain name (e.g., example.com)

Pieprasījuma piemērs

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

Atbildes piemērs

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

Atbildes statusa kodi

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

Dzēst DNS zonu

Neatgriezeniski dzēst DNS zonu un visus saistītos ierakstus. Šo darbību nevar atsaukt.

Ceļa parametri

Parametrs Tips Obligāti Apraksts
uuid string Unique zone identifier

Atbildes statusa kodi

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

Uzskaitīt DNS ierakstus zonā

Iegūst visus DNS ierakstus par konkrētu zonu (iztrūkstošs maršruts).

Ceļa parametri

Parametrs Tips Obligāti Apraksts
uuid string Zone UUID

Pieprasījuma piemērs

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

Atbildes piemērs

[
  {
    "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"
  }
]
POSMS /api/v1/dns-zones/{uuid}/records/

Izveidot DNS ierakstu zonā

Pievienot jaunu DNS ierakstu konkrētai zonai (noklusētais maršruts).

Pieprasījuma pamatteksta parametri

Parametrs Tips Obligāti Apraksts
record_type string Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Record name (@ for root, subdomain, or FQDN)
value string 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)

Pieprasījuma piemērs

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

Atbildes statusa kodi

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

Pārvaldīt DNS ierakstus (tiešā piekļuve)

Pilna Crud darbība uz atsevišķiem DNS ierakstiem, izmantojot ierakstu UUID.

Pieejamās darbības

Pieprasījuma parametri (GET/api/v1/dns- ierakstiem/)

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

Piemērs: ieraksta TTL atjaunināšana

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

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

Paraugprakse

TTL konfigurācija

Parasti modeļi

Drošība

Kļūdu apstrāde

Bieži pieļautās kļūdas

Statusa kods Kļūda Šķīdums
400 Nederīgs domēna vārds Nodrošināt domēna seko DNS nosaukumu konvencijām
400 MX ieraksts prasa prioritāti Iekļaut priority Lauks MX un SRV ierakstiem
401 Nederīgs API žetons Pārbaudiet marķiera formātu (jāsāk ar vps_)
403 Trūkstoša atļauja Izveidot jaunu atzīmi ar nepieciešamo dns:* atļaujas
404 Zona/ieraksts nav atrasts Pārbaudīt UUID un nodrošināt resursu pieder jūsu kontam

Piemēru kļūdas atbilde

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

Testēšana DNS izmaiņas

Pārbaudīt ierakstu izcelšanos

# 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

Lietot tiešsaistes rīkus