VPS.org API

Documentare API REST

API-ul de gestionare DNS

Gestionați programatic zonele și înregistrările DNS pentru domeniile dvs.

Puncte finale 4 puncte finale
Calea de bază /api/v1/dns-zones
Autentificare Următoarea Token este necesară

Prezentare generală

API DNS oferă administrarea completă a zonelor DNS și a înregistrărilor. Toate zonele sunt găzduite pe VPS.org de servere de nume autorității lui cu generarea și implementarea automată a fișierelor zonei BIND9.

Infrastructura serverului de nume

Caracteristici cheie

Autentificare

Toate cererile de API DNS necesită autentificare de token Bearer. Generați tokenuri de API din bordul contului la /account/developers/ cu următoarele permisiuni:

Exemplu

Authorization: Bearer vps_abc123def456...
Important: Token-urile API sunt afișate doar o dată în timpul creării. Păstrați-le în condiții de siguranță. Dacă pierdeți un token, trebuie să generați unul nou.
OBŢINE /api/v1/dns-zones/

Listați toate zonele DNS

Obține o listă paginată a tuturor zonelor DNS deținute de utilizatorul autentificat. Suportează filtrarea prin numele de domeniu.

Parametrii de interogare

Parametrul Tip Necesar Descriere
domain string Nu. Filter zones by exact domain name (e.g., example.com)

Exemplu de solicitare

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

Exemplu de răspuns

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

Câmpuri de răspuns

Câmp Tip Descriere
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

Coduri de stare a răspunsului

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

Obține detalii ale zonei DNS

Obține informații detaliate despre o zonă DNS specifică, inclusiv toate înregistrările.

Parametrii căii

Parametrul Tip Necesar Descriere
uuid string Da Unique zone identifier

Exemplu de răspuns

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

Coduri de stare a răspunsului

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

Creează zona DNS

Creează o nouă zonă DNS pentru un domeniu. Zona va fi desfășurată imediat la VPS.org servere de nume.

Parametrii corpului cererii

Parametrul Tip Necesar Descriere
domain string Da Domain name (e.g., example.com)

Exemplu de solicitare

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

Exemplu de răspuns

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

Coduri de stare a răspunsului

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

Șterge zona DNS

Șterge permanent o zonă DNS și toate înregistrările asociate. Această acțiune nu poate fi anulată.

Parametrii căii

Parametrul Tip Necesar Descriere
uuid string Da Unique zone identifier

Coduri de stare a răspunsului

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

Listă înregistrările DNS în zona

Obține toate înregistrările DNS pentru o zonă specifică (roută nesată).

Parametrii căii

Parametrul Tip Necesar Descriere
uuid string Da Zone UUID

Exemplu de solicitare

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

Exemplu de răspuns

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

Creează înregistrarea DNS în zona

Adaugă un nou înregistrare DNS într-o zonă specifică (roută nesată).

Parametrii corpului cererii

Parametrul Tip Necesar Descriere
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)

Exemplu de solicitare

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

Coduri de stare a răspunsului

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

Gestionează înregistrările DNS (Acces direct)

Operațiuni complete CRUD pe înregistrări DNS individuale folosind înregistrarea UUID.

Operațiuni disponibile

Parametrii cercetării (pentru GET /api/v1/dns-records/)

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

Exemplu: actualizează TTL-ul unui record

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

Cele mai bune practici

Configurație TTL

Moduri comune

Securitate

Eroare de manipulare

Eroare comune

Cod de stare Eroare Soluţie
400 Nume de domeniu nevalid Asigurați-vă că domeniul urmează convenții de denumire DNS
400 Înregistrarea MX necesită prioritate Include priority domeniu pentru înregistrările MX și SRV
401 Token API nevalid Verificați formatul token (trebuie să începeți cu vps_)
403 Permisiune lipsă Generați un token nou cu necesar dns:* permisiuni
404 Zonă/înregistrare negăsită Verificați UUID și asigurați-vă că resursele aparțin contului dvs.

Răspuns la eroare de exemplu

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

Testarea modificărilor DNS

Verificarea propagării înregistrărilor

# 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

Folosind unelte online