VPS.org API

REST API Dokimantasyon

API Jesyon DNS

Jere zòn DNS ak anrejistreman pou domèn ou yo atravè pwogramasyon.

Pwen final yo 4 pwen final
Chemen Baz la /api/v1/dns-zones
Otantifikasyon Done ki nesesè

Apèsi sou sijè a

Tout zòn yo òganize sou sèvè non VPS.org yo ak yon jenerasyon ak deployman otomatik nan dosye zòn BIND9.

Nameserver Infrastructure

Fonksyon kle

Otantifikasyon

Tout demann API DNS mande pou autentifikasyon token Bearer. Jenerasyon tokens API soti nan tablodbò kont ou nan /account/developers/ ak dwa sa yo:

Egzanp

Authorization: Bearer vps_abc123def456...
Important: Token API yo montre yon fwa sèlman pandan kreyasyon an. Anpeche yo pèdi. Si ou pèdi yon token, ou dwe kreye yon nouvo.
JWENN /api/v1/dns-zones/

Lis tout zòn DNS yo

Rekipere yon lis paginated de tout zòn DNS posede pa itilizatè a autentifiké. Soutyen filtraj pa non domèn.

Paramèt Rechèch

Paramèt Kalite Obligatwa Detay
domain string Non Filter zones by exact domain name (e.g., example.com)

Egzanp Demann

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

Egzanp Repons

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

Jaden Repons yo

Fòma Kalite Detay
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

Kòd Estati Repons yo

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

Obtenir les détails de la zone DNS

Rekipere enfòmasyon detaye sou yon zòn DNS espesifik, ki gen ladan tout enskripsyon.

Paramèt Chemen

Paramèt Kalite Obligatwa Detay
uuid string Wi Unique zone identifier

Egzanp Repons

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

Kòd Estati Repons yo

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

Kreye yon zòn DNS

Kreye yon nouvo zòn DNS pou yon domèn. Zòn lan pral mete an plas imedyatman sou VPS.org sèvè non.

Paramèt Kò Demann lan

Paramèt Kalite Obligatwa Detay
domain string Wi Domain name (e.g., example.com)

Egzanp Demann

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

Egzanp Repons

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

Kòd Estati Repons yo

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

Diminye

Supprimer définitivement une zone DNS et tous les enregistrements associés. Cette action ne peut pas être défaite.

Paramèt Chemen

Paramèt Kalite Obligatwa Detay
uuid string Wi Unique zone identifier

Kòd Estati Repons yo

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

List DNS Records in Zone

Rekipere tout enskri DNS pou yon zòn espesifik (itilize itinéraire).

Paramèt Chemen

Paramèt Kalite Obligatwa Detay
uuid string Wi Zone UUID

Egzanp Demann

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

Egzanp Repons

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

Kreye yon enskri DNS nan Zon

Ajoute yon nouvo enskri DNS nan yon zòn espesifik (itilize).

Paramèt Kò Demann lan

Paramèt Kalite Obligatwa Detay
record_type string Wi Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Wi Record name (@ for root, subdomain, or FQDN)
value string Wi 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)

Egzanp Demann

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

Kòd Estati Repons yo

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

Manaje Enskri DNS (Akses Dirèk)

Operasyon CRUD konplè sou dosye DNS endividyèl ki itilize UUID dosye.

Opsyon disponib

Paramèt kesyon (pou GET /api/v1/dns-records/)

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

Egzanp: Mete ajou TTL yon dosye

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

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

Pratik ki pi bon

Konfigurasyon TTL

Pawòl

Sekirite

Manipilasyon erè

Erè komen

Kòd Estati Erè Rezoud
400 Non domèn ki pa valab Sèvi ak konvenyans nan nonman DNS
400 Enskri MX mande pou priyorite Anba priority jaden pou enskri MX ak SRV
401 Token API ki pa valab Check token format (must start with vps_)
403 Permisyon ki manke Kreye yon nouvo token ak required dns:* Permissions
404 Pa jwenn Verifye UUID ak asire w resous la se kont ou

Reponn erè egzanp

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

Teste chanjman DNS

Verifye pwopagasyon enskri

# 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

Itilize zouti sou entènèt