VPS.org API

REST API Documentation

DNS Management API

Konzani ma DNS zones ndikulemba ma domain anu motsatira ndondomeko.

Mapeto Mapeto 4
Njira Yoyambira /api/v1/dns-zones
Kutsimikizira Kufunika kwa Bearer Token

Chidule

DNS API imapatsa kuwongolera kwathunthu kwa zigawo za DNS ndi zolemba.Zomwe zili zonse zimagulitsidwa pa VPS.org's authoritative nameservers ndi kukhazikitsidwa kwa mafayilo a BIND9 ndi kukhazikitsa.

Nameserver Infrastructure

Zithunzi zazikulu

Kutsimikizira

Zosowa zonse za DNS API zimafunikira kutsimikizika kwa Bearer token. /account/developers/ ndi zilolezo izi:

Mfano

Authorization: Bearer vps_abc123def456...
Chofunika: API tokens amasonyeza kokha kamodzi pamene kupangidwa. Kusunga iwo securely. Ngati inu kuchoka token, muyenera kupanga wina watsopano.
Pezani /api/v1/dns-zones/

Lembani Magawo Onse a DNS

Kupeza mndandanda wa masamba onse a DNS omwe ali ndi wogwiritsa ntchito wovomerezeka. Amathandizira kuchotsa ndi dzina la domain.

Ma Parameter a Mafunso

Paramita Mtundu Zofunika Kufotokozera
domain string Si Filter zones by exact domain name (e.g., example.com)

Chitsanzo cha Pempho

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

Chitsanzo cha Yankho

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

Mayankho a Minda

Kuwala Mtundu Kufotokozera
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

Makhodi a Mkhalidwe Woyankha

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

Pezani DNS Zone Deta

Kupeza zambiri zokhudzana ndi mfundo DNS zone, kuphatikizapo zonse zolemba.

Magawo a Njira

Paramita Mtundu Zofunika Kufotokozera
uuid string Inde Unique zone identifier

Chitsanzo cha Yankho

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

Makhodi a Mkhalidwe Woyankha

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

Kukhazikitsa DNS Zone

Kukhazikitsa DNS zone kwa domain. The zone adzaikidwa mwamsanga kuti VPS.org nameservers.

Pemphani Ma Parameter a Thupi

Paramita Mtundu Zofunika Kufotokozera
domain string Inde Domain name (e.g., example.com)

Chitsanzo cha Pempho

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

Chitsanzo cha Yankho

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

Makhodi a Mkhalidwe Woyankha

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

Kuchotsa DNS Zone

Kuchotsa kwanthawi zonse malo a DNS ndi zonse zomwe zilipo. Chikhalidwe ichi sichingasinthidwe.

Magawo a Njira

Paramita Mtundu Zofunika Kufotokozera
uuid string Inde Unique zone identifier

Makhodi a Mkhalidwe Woyankha

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

List DNS Records mu Zone

Kupeza zonse DNS zolemba kwa malire mfundo (nested njira).

Magawo a Njira

Paramita Mtundu Zofunika Kufotokozera
uuid string Inde Zone UUID

Chitsanzo cha Pempho

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

Chitsanzo cha Yankho

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

Kukhazikitsa DNS Record mu Zone

Kuwonjezera DNS yatsopano ku zone (nested njira).

Pemphani Ma Parameter a Thupi

Paramita Mtundu Zofunika Kufotokozera
record_type string Inde Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Inde Record name (@ for root, subdomain, or FQDN)
value string Inde 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)

Chitsanzo cha Pempho

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

Makhodi a Mkhalidwe Woyankha

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

Kuwongolera DNS Records (Kupeza Kwam'manja)

Full CRUD ntchito pa DNS zolemba wina ndi mzake pogwiritsa ntchito UUID zolemba.

Zochita Zopezeka

Kufunsa Ma parameters (kwa GET /api/v1/dns-records/)

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

Mfano: Kusintha TTL ya 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

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

Zochita zabwino

Kusintha kwa TTL

Zomwe zimachitika

Ku_teteza

Kusamalira Mavuto

Zosagwirizana

Khodi ya Udindo Kulephera Kusintha
400 Invalid domain name Pezani kuti domain itsatira zokambirana za DNS
400 MX record ikufuna kupewa Kuphatikiza priority MX ndi SRV zidziwitso
401 Invalid API token Sankhani mtundu wa token (muyenera kuyamba ndi vps_)
403 Kulephera kwa ufulu Kulenga token yatsopano ndi zofunikira dns:* _Malamulo
404 Zolemba sizikupezeka Sankhani UUID ndi kuonetsetsa kuti mfundo ali ndi wanu akaunti

Mfundo Kulephera Kuyankha

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

Kuyesa Zosintha za DNS

Kuyesa kufalitsa kwa zidziwitso

# 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

Kugwiritsa ntchito Online Tools