VPS.org API

Dokumintaasje

DNS-behear API

Behear DNS-sônes en records programmatysk foar jo domeinen.

Einpunten 4 einpunten
Basispaad /api/v1/dns-zones
Autentikaasje Bearer Token fereaske

Oersicht

De DNS API biedt folslein bestjoer fan DNS- zonen en records. Alle zonen wurde host op VPS.org' s autoritative nammetsjinners mei automatyske BIND9- zoentriem oanmeitsjen en ynset.

Nammetsjinner

Haadfunksjes

Autentikaasje

Alle DNS API- fersiken fereaskje Bearer Token- ferifikaasje. Generearje API- tokens fanút jo akkount- dashboard op /account/developers/ mei de folgjende tagongsrjochten:

Foarbyld

Authorization: Bearer vps_abc123def456...
Wichtich: API- tokens wurde mar ien kear toand by it oanmeitsjen. Bewarje se feilich. As jo in token ferlieze, dan moatte jo in nije oanmeitsje.
KRIJE /api/v1/dns-zones/

List alle DNS-sônes

Haad in paginalist op fan alle DNS- zonen dy' t eigendom binne fan de ferifikaasjebrûker. Stipe foar filterjen op domeinnamme.

Fraachparameters

Parameters Type Ferplicht Beskriuwing
domain string Net Filter zones by exact domain name (e.g., example.com)

Foarbyldfersyk

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

Foarbyldantwurd

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

Antwurdfjilden

Fjild Type Beskriuwing
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

Antwurdstatuskoades

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

DNS- sônedetails ophelje

Haal detaillearre ynformaasje op oer in spesifike DNS- sône, ynklusyf alle records.

Paadparameters

Parameters Type Ferplicht Beskriuwing
uuid string Ja Unique zone identifier

Foarbyldantwurd

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

Antwurdstatuskoades

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

DNS- sône oanmeitsje

Meitsje in nije DNS- sône oan foar in domein. De sône wurdt direkt ynset op VPS.org nammetsjinners.

Parameters fan oanfraachlichem

Parameters Type Ferplicht Beskriuwing
domain string Ja Domain name (e.g., example.com)

Foarbyldfersyk

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

Foarbyldantwurd

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

Antwurdstatuskoades

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

DNS- sône wiskje

Wisket in DNS- sône en alle byhearrende records foar altyd fuort. Dizze aksje kin net ûngedien makke wurde.

Paadparameters

Parameters Type Ferplicht Beskriuwing
uuid string Ja Unique zone identifier

Antwurdstatuskoades

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

DNS- records yn de zone sjen litte

Alle DNS- records foar in spesifike sône (nested route) ophelje.

Paadparameters

Parameters Type Ferplicht Beskriuwing
uuid string Ja Zone UUID

Foarbyldfersyk

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

Foarbyldantwurd

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

DNS- rekord yn de zone oanmeitsje

In nije DNS- rekord taheakje oan in spesifike sône (nestearre paad).

Parameters fan oanfraachlichem

Parameters Type Ferplicht Beskriuwing
record_type string Ja Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name string Ja Record name (@ for root, subdomain, or FQDN)
value string Ja 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)

Foarbyldfersyk

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

Antwurdstatuskoades

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

DNS- records beheare (direkte tagong) Name

De namme fan de stêd komt fan de namme fan in eardere stêd yn de Nederlannen.

Beskikbere hanneling

Query Parameters (for GET /api/v1/dns-records/)

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

Foarbyld: TTL fan in rekord bywurkje

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

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

Best Practices

TTL- ynstellings

Algemiene patroanen

Befeiliging

Flaterbehear

Algemiene flaters

Statuskoade Flater Oplossing
400 Unjildige domeinnamme Soarget derfoar dat domeinen de DNS- nammekonvensjes folgje
400 MX- record fereasket prioriteit Ynklusyf priority fjild foar MX- en SRV- records
401 Unjildich API-token Kontrolearje token opmaak (moat begjinne mei vps_)
403 Untbrekke tagongsrjochten Nij token oanmeitsje mei fereaske dns:* tagongsrjochten
404 Zone/record net fûn Kontrolearje de UUID en soargje derfoar dat de boarne ta jo akkount heart

Foarbyld flater antwurd

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

DNS- feroarings wurde test

Recordfersprieding kontrolearje

# 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

Ynline ark brûke