VPS.org API

> REST API dokumentasyon

> DNS Pamamahala API

Pamahalaan ang mga DNS zone at record para sa iyong mga domain sa pamamagitan ng programa.

Mga Endpoint 4 na mga endpoint
Landas ng Batayan /api/v1/dns-zones
Pagpapatotoo > Kailangan ang Token ng May-ari

Pangkalahatang-ideya

Ang DNS API ay nagbibigay ng kumpletong pamamahala ng mga zone at mga talaan ng DNS. Lahat ng mga zone ay naka-host sa VPS.org's awtorisadong nameservers na may awtomatikong BIND9 zone file henerasyon at pagpapatupad.

<Impormasyon ng Nameserver

Mga Susing Katangian

Pagpapatotoo

> Lahat ng mga DNS API mga kahilingan ay nangangailangan ng bearer token authentication. Bumuo ng API token mula sa iyong account dashboard sa /account/developers/ > na may mga sumusunod na pahintulot:

Halimbawa

Authorization: Bearer vps_abc123def456...
Mahalaga: > API token ay ipinapakita lamang ng isang beses sa panahon ng paglikha. I-imbak ang mga ito nang ligtas. Kung mawala mo ang isang token, dapat mong makabuo ng isang bagong isa.
KUMUHA /api/v1/dns-zones/

Ilista ang Lahat ng DNS Zones

> Bumuo ng isang pag-uuri ng listahan ng lahat ng mga zone DNS pag-aari ng mga authenticated user. Suporta sa pag-filter sa pamamagitan ng pangalan ng domain.

Mga Parameter ng Query

Parameter Uri Kinakailangan Paglalarawan
domain string Hindi Filter zones by exact domain name (e.g., example.com)

Halimbawang Kahilingan

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

Halimbawang Tugon

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

Mga Patlang ng Tugon

Patlang Uri Paglalarawan
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

Mga Kodigo ng Katayuan ng Tugon

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

> Kumuha ng DNS Zone Detalye

> Bumuo ng detalyadong impormasyon tungkol sa isang tiyak na zone DNS, kabilang ang lahat ng mga talaan.

Mga Parameter ng Landas

Parameter Uri Kinakailangan Paglalarawan
uuid string Oo Unique zone identifier

Halimbawang Tugon

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

Mga Kodigo ng Katayuan ng Tugon

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

Mag-set up ng DNS Zone

> Lumikha ng isang bagong DNS zone para sa isang domain. Ang zone ay agad na inilunsad sa VPS.org nameservers.

Humiling ng mga Parameter ng Katawan

Parameter Uri Kinakailangan Paglalarawan
domain string Oo Domain name (e.g., example.com)

Halimbawang Kahilingan

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

Halimbawang Tugon

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

Mga Kodigo ng Katayuan ng Tugon

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

> I-delete ang DNS Zone

> Permanenteng tanggalin ang isang DNS zone at ang lahat ng mga kaugnay na mga tala. Ang aksyon na ito ay hindi maaaring i-undo.

Mga Parameter ng Landas

Parameter Uri Kinakailangan Paglalarawan
uuid string Oo Unique zone identifier

Mga Kodigo ng Katayuan ng Tugon

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

> Listahan ng mga talaan ng DNS sa Zone

> Bumalik ang lahat ng mga talaan DNS para sa isang tiyak na zone (nested ruta).

Mga Parameter ng Landas

Parameter Uri Kinakailangan Paglalarawan
uuid string Oo Zone UUID

Halimbawang Kahilingan

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

Halimbawang Tugon

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

> Lumikha ng DNS Record sa Zone

> Magdagdag ng isang bagong record DNS sa isang tiyak na zone (nested ruta).

Humiling ng mga Parameter ng Katawan

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

Halimbawang Kahilingan

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

Mga Kodigo ng Katayuan ng Tugon

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

> Pamahalaan ang mga talaan ng DNS (Direct Access)

Ang mga ito ay mga karaniwang ginagamit na mga record ng DNS.

> Available na mga operasyon

> Query Parameters (para sa GET /api/v1/dns-records/)

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

Halimbawa: I-update ang TTL ng isang 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

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

> Pinakamahusay na mga kasanayan

TTL Konfigurasyon

> Karaniwang mga pattern

Seguridad

Error Handling

karaniwang mga error

Kodigo ng Katayuan Error Solusyon
400 Hindi wastong pangalan ng domain > Tiyakin domain sumusunod DNS pagtawag conventions
400 > MX record ay nangangailangan ng prayoridad Kasama priority tl> patlang para sa MX at SRV tala
401 Hindi wastong API token > Tingnan ang token format (dapat magsimula sa vps_)
403 > Nawawalang pahintulot > Bumuo ng bagong token na may kinakailangang dns:* Permissions
404 > Zone / record hindi natagpuan > Suriin UUID at tiyakin na ang mapagkukunan ay kabilang sa iyong account

Halimbawa ng Tugon sa Error

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

Pagsubok ng mga pagbabago sa DNS

> Suriin ang Record pagpapalaganap

# 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

> Paggamit ng Online na Mga Tool