VPS.org API

REST API-documentatie

DNS-beheer-API

Beheer DNS-zones en -records programmatisch voor uw domeinen.

Eindpunten 4 eindpunten
Basispad /api/v1/dns-zones
Authenticatie Drager Token vereist

Overzicht

De DNS API biedt volledig beheer van DNS zones en records. Alle zones worden gehost op VPS.org's gezaghebbende nameservers met automatische BIND9 zone bestandsgeneratie en implementatie.

Infrastructuur voor naamservers

Belangrijkste kenmerken

Authenticatie

Alle DNS-API-verzoeken vereisen authenticatie van een drager token. Genereer API tokens van uw account dashboard op /account/developers/ met de volgende machtigingen:

Voorbeeld

Authorization: Bearer vps_abc123def456...
Belangrijk: API tokens worden slechts eenmaal getoond tijdens het aanmaken. Sla ze veilig op. Als u een token verliest, moet u een nieuwe aanmaken.
KRIJGEN /api/v1/dns-zones/

Alle DNS-zones weergeven

Een gepagineerde lijst ophalen van alle DNS-zones die eigendom zijn van de geauthentiseerde gebruiker. Ondersteunt filteren op domeinnaam.

Queryparameters

Parameter Type Vereist Omschrijving
domain string Nee Filter zones by exact domain name (e.g., example.com)

Voorbeeldverzoek

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

Voorbeeldantwoord

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

Antwoordvelden

Veld Type Omschrijving
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

Responsstatuscodes

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

DNS Zone-details opvragen

Haal gedetailleerde informatie op over een specifieke DNS-zone, inclusief alle records.

Padparameters

Parameter Type Vereist Omschrijving
uuid string Ja Unique zone identifier

Voorbeeldantwoord

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

Responsstatuscodes

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

DNS-zone aanmaken

Maak een nieuwe DNS-zone aan voor een domein. De zone wordt onmiddellijk ingezet voor VPS.org nameservers.

Parameters van de aanvraagbody

Parameter Type Vereist Omschrijving
domain string Ja Domain name (e.g., example.com)

Voorbeeldverzoek

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

Voorbeeldantwoord

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

Responsstatuscodes

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

DNS-zone verwijderen

Een DNS-zone en alle bijbehorende records permanent verwijderen. Deze actie kan niet ongedaan worden gemaakt.

Padparameters

Parameter Type Vereist Omschrijving
uuid string Ja Unique zone identifier

Responsstatuscodes

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

Lijst van DNS-records in Zone

Alle DNS-records ophalen voor een specifieke zone (gedesigneerde route).

Padparameters

Parameter Type Vereist Omschrijving
uuid string Ja Zone UUID

Voorbeeldverzoek

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

Voorbeeldantwoord

[
  {
    "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-record aanmaken in zone

Voeg een nieuwe DNS-record toe aan een specifieke zone (gedesigneerde route).

Parameters van de aanvraagbody

Parameter Type Vereist Omschrijving
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)

Voorbeeldverzoek

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

Responsstatuscodes

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

Beheer DNS Records (Direct Access)

Volledige CRUD operaties op individuele DNS records met behulp van record UUID.

Beschikbare bewerkingen

Parameters zoeken (voor GET /api/v1/dns-records/)

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

Voorbeeld: Update TTL van een 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

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

Beste praktijken

TTL-configuratie

Gemeenschappelijke patronen

Veiligheid

Fout bij omgaan

Vaak voorkomende fouten

Statuscode Fout Oplossing
400 Ongeldige domeinnaam Zorg ervoor dat domein volgt DNS naamgeving conventies
400 MX record vereist prioriteit Includeren priority veld voor MX- en SRV-records
401 Ongeldige API token Token opmaak controleren (moet beginnen met vps_)
403 Ontbrekende toestemming Nieuwe token aanmaken met vereist dns:* machtigingen
404 Zone/record niet gevonden Controleer UUID en zorg ervoor dat de hulpbron bij uw account hoort

Voorbeeldfoutrespons

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

DNS-wijzigingen testen

Verifiëren van recordpropagatie

# 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

Online hulpmiddelen gebruiken