VPS.org API

Lëscht vun de Lëtzebuerger Filmer

DNS-Verwaltungs-API

Verwalt DNS-Zonen an -Dateien programmatesch fir Är Domainen.

Endpunkten 4 Endpunkten
Basiswee /api/v1/dns-zones
Authentifikatioun Bedreiwer-Token erfuerderlech

Iwwersiicht

D'DNS API bitt vollstänneg Verwaltung vun DNS-Zonen an -Dateien. All Zonen ginn op den VPS.org's authoritative Nameservers mat automatescher BIND9 Zone Dateigeneréierung a Verdeelung gehost.

Lëscht vun de Lëtzebuerger Gemengen

Schlësselfeatures

Authentifikatioun

All DNS API Ufroen erfuerderen Bearer Token Authentifizéierung. Generéiert API Token vun Ärem Kont Dashboard op /account/developers/ mat de folgenden Zougrëff:

Beispill

Authorization: Bearer vps_abc123def456...
Wichtig: API Token ginn nëmmen eemol während der Erstellung gewisen. Bewaart se sécher. Wann Dir en Token verléiert, musst Dir en neien erstellen.
KRITT /api/v1/dns-zones/

All DNS-Zonen oplëschten

Gitt eng gepaginate Lëscht vun allen DNS-Zonen, déi dem authentifizéierte Benotzer gehéieren. Unterstützt d'Filtration no Domain-Namen.

Ufroparameteren

Parameter Typ Erfuerderlech Beschreiwung
domain string Nee Filter zones by exact domain name (e.g., example.com)

Beispill Ufro

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

Beispill Äntwert

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

Äntwertfelder

Feld Typ Beschreiwung
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

Äntwertstatuscoden

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

DNS-Zone-Detailer

Et gëtt eng ganz Rei vu verschiddene Forme vu DNS, déi all ënnerschiddlech sinn.

Weeparameter

Parameter Typ Erfuerderlech Beschreiwung
uuid string Jo Unique zone identifier

Beispill Äntwert

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

Äntwertstatuscoden

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

DNS-Zone erstellen

Erstellen eng nei DNS-Zone fir eng Domän. D'Zone gëtt direkt op VPS.org Namensserveren ausgeriicht.

Parameter vum Ufro-Kierper

Parameter Typ Erfuerderlech Beschreiwung
domain string Jo Domain name (e.g., example.com)

Beispill Ufro

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

Beispill Äntwert

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

Äntwertstatuscoden

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

DNS-Zone entfernen

DNS Zone an all d' matgebonne Datensätze permanent entfernen. Dës Aktioun kann net réckgängeg gemaach ginn.

Weeparameter

Parameter Typ Erfuerderlech Beschreiwung
uuid string Jo Unique zone identifier

Äntwertstatuscoden

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

Lëscht vun DNS-Datensätzen an der Zone

D'Donnéeë vun der Gemeng sinn an enger Tabell (op Franséisch) zesummegefaasst.

Weeparameter

Parameter Typ Erfuerderlech Beschreiwung
uuid string Jo Zone UUID

Beispill Ufro

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

Beispill Äntwert

[
  {
    "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-Eintrag an der Zone erstellen

D'Donnéeë vun der Gemeng sinn an enger spezieller Datebank (Donnéeënbank) gespeichert.

Parameter vum Ufro-Kierper

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

Beispill Ufro

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

Äntwertstatuscoden

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-Datensatz verwalten (direkten Zougang)

D'Resultater vun de verschiddene Recherchen an de verschiddene Publikatiounen ginn an engem Dossier zesummegefaasst.

Verfügbar Operatiounen

Query Parameteren (fir GET /api/v1/dns-records/)

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

Lëscht vun de lëtzebuergesche Literaturpräisser

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

Typ 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 Jo
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 Jo
CAA Certificate authority authorization 0 issue "letsencrypt.org" Nee

Best Practices

TTL Konfiguratioun

Allgemeng Musteren

Sécherheet

Fehlerbehandlung

Allgemeng Fehler

Statuscode Fehler Léisung
400 Ungültege Domain D'Domäne ginn an der DNS-Namenskonventioun definéiert.
400 MX-Datensatz erfuerdert Prioritéit Inklusioun priority Feld fir MX- a SRV- Datsätz
401 Ugefouert Kontrolléiert d'Token-Format (muss mat ufänken) vps_)
403 Rechter fehlen Neie Token mat erfuerderlech erzeugen dns:* Permissions
404 Zone/Rekord net fonnt Verifizéieren UUID an sécherstellen Ressource gehéiert zu Ärem Kont

Lëscht vun de lëtzebuergesche Geischter

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

DNS-Ännerungen testen

D'Produktioun vun der Opnam verifizéieren

# 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-Versioun