VPS.org API

REST API dokumentasi

API Manajemén DNS

Atur zona sareng rékaman DNS sacara programatik pikeun domain anjeun.

Titik Tungtung 4 titik tungtung
Jalur Dasar /api/v1/dns-zones
Autentikasi Bearer Token Diperlukan

Tinjauan

DNS API nyadiakeun manajemen lengkep tina zona DNS jeung rékor. Sadaya zona dihost dina VPS.org's nameservers otoritas kalawan otomatis BIND9 zona generasi file jeung deployment.

Nameserver Infrastructure

Fitur Utama

Autentikasi

Sedaya pitakonan API DNS mbutuhake autentikasi token Bearer. Nyiptakaké token API saka dashboard akun ing /account/developers/ karo ijin ing ngisor iki:

Conto

Authorization: Bearer vps_abc123def456...
Penting: Token API ngan ditempo sakali nalika diciptakeun. Simpenana sacara aman. Upami anjeun leungitkeun token, anjeun kedah nyiptakeun anu anyar.
MEUNANGKEUN /api/v1/dns-zones/

Daptarkeun Sadaya Zona DNS

Ngumpulkeun daftar paged sakabéh zona DNS anu dimiliki ku pangguna anu diautentikasi. Ngadukung panyaring ku nami domain.

Parameter Pamundut

Parameter Tipe Diperlukeun Gambaran
domain string Ora Filter zones by exact domain name (e.g., example.com)

Conto Pamundut

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

Conto Réspon

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

Widang Tanggapan

Lapangan Tipe Gambaran
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

Kodeu Status Tanggapan

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

Muat turun DNS Zone Details

Ngarekam informasi rinci ngeunaan zona DNS husus, kalebet sadaya rékor.

Parameter Jalur

Parameter Tipe Diperlukeun Gambaran
uuid string Muhun Unique zone identifier

Conto Réspon

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

Kodeu Status Tanggapan

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

Nggawe Domain

Nyiptakeun zona DNS anyar pikeun domain. Zona bakal langsung diterapkeun ka VPS.org pelayan nami.

Pamundut Parameter Awak

Parameter Tipe Diperlukeun Gambaran
domain string Muhun Domain name (e.g., example.com)

Conto Pamundut

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

Conto Réspon

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

Kodeu Status Tanggapan

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

Hapus Zona DNS

Pamekar zona DNS sarta sadaya rékor anu aya hubunganana sacara permanen. Tindakan ieu teu bisa dibatalkeun.

Parameter Jalur

Parameter Tipe Diperlukeun Gambaran
uuid string Muhun Unique zone identifier

Kodeu Status Tanggapan

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

Daftar rekaman DNS ing zona

Nganggo kabeh rekaman DNS kanggo zona tartamtu (rute bersilang).

Parameter Jalur

Parameter Tipe Diperlukeun Gambaran
uuid string Muhun Zone UUID

Conto Pamundut

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

Conto Réspon

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

Nggawe rekor DNS ing zona

Tambahake rekaman DNS anyar ka zona khusus (rute anu diukir).

Pamundut Parameter Awak

Parameter Tipe Diperlukeun Gambaran
record_type string Muhun Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Muhun Record name (@ for root, subdomain, or FQDN)
value string Muhun 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)

Conto Pamundut

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

Kodeu Status Tanggapan

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

Manajemen DNS Record (Akses langsung)

Saben domain dipérang dadi subdomain kanthi jeneng sing padha.

Operasi kang ana

Parameter pitakonan (kanggo GET /api/v1/dns-records/)

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

Contoh: Ngajalajah TTL rekaman

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

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

Praktik Paling Apik

Konfigurasi TTL

Tembung

Keamanan

Ngatur Kesalahan

Kesalahan umum

Kode Status Kesalahan Solusi
400 Nama domain ora sah Nyatane domain ngetutake konvensi jeneng DNS
400 Rekor MX butuh prioritas Ngemot priority MX жана SRV жазуу үчүн
401 Token API ora sah Verifikasi format token (kudu diwiwiti karo vps_)
403 Keizinan ilang Ngembangake token anyar karo dibutuhake dns:* Permissions
404 Zona/rekaman ora ditemoka Nyatakake UUID lan priksa manawa sumber daya iku milik akunmu

Conto Jawaban Kesalahan

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

Nguji perubahan DNS

Nyatakan penyebaran rekaman

# 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

Menggunakan Alat Online