VPS.org API

REST API Documentation

API für Domänen

Suchen Sie nach verfügbaren Domainnamen, registrieren und erneuern Sie Domains und verwalten Sie ihre Nameserver und Auto-Erneuerung. Domains werden durch ihre uuid identifiziert.

Endpunkte 7
Basispfad /api/v1/domains
ERHALTEN /api/v1/domains/

Alle Domains auflisten

Gibt die Domains zurück, die in Ihrem Konto registriert sind, 25 pro Seite. Die Liste hat keine Filter.

Erforderliche Genehmigung: domains:list

Beispielanfrage

cURL
Python
JavaScript
curl -X GET "https://admin.vps.org/api/v1/domains/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/domains/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
for domain in response.json()["results"]:
    print(domain["domain_name"], domain["status"], domain["expiration_date"])
const response = await fetch('https://admin.vps.org/api/v1/domains/', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);

Beispielantwort

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
      "domain_name": "example.com",
      "status": "active",
      "registrar": "dynadot",
      "registration_date": "2026-01-15T10:30:00Z",
      "expiration_date": "2027-01-15T10:30:00Z",
      "days_until_expiration": 122,
      "is_expired": false,
      "needs_renewal_soon": false,
      "auto_renew": true,
      "renewal_period_years": 1,
      "registration_price": "12.64",
      "renewal_price": "12.64",
      "whois_privacy": true,
      "nameserver1": "ns1.vps.org",
      "nameserver2": "ns2.vps.org",
      "nameserver3": "ns3.vps.org",
      "nameserver4": null,
      "transfer_lock": true,
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-09-01T08:12:40Z"
    }
  ]
}

Antwortfelder

Feld Typ Description
uuid string Domain-Identifikator, der in den anderen Domainendpunkten verwendet wird
status string active, pending, expired, cancelled, transferred
registrar string Der Kanzler der Domain ist
registration_date, expiration_date datetime Wenn die Domain registriert wurde und sie abläuft. Ablauf_Datum kann null sein.
days_until_expiration integer | null Ganze Tage bis zum Ablaufdatum, negativ nach Ablauf
is_expired, needs_renewal_soon boolean Ob die Domain abgelaufen ist und ob sie innerhalb der nächsten 30 Tage abläuft
auto_renew, renewal_period_years boolean, integer Ob die Domain automatisch erneuert und wie viele Jahre
registration_price, renewal_price string Preise in USD als Dezimalzeichen
whois_privacy, transfer_lock boolean WHOIS Privatsphäre und Register-Übertragungssperre Einstellungen
nameserver1 to nameserver4 string | null Nameserver der Domain
created_at, updated_at datetime Wenn der Datensatz erstellt und zuletzt geändert wurde (ISO 8601, UTC)
ERHALTEN /api/v1/domains/{uuid}/

Domänendetails abrufen

Gibt ein Domainobjekt mit den oben genannten Feldern zurück.

Erforderliche Genehmigung: domains:list

curl -X GET "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Antwortstatuscodes

200 Erfolg
404 Nicht gefunden, oder es gehört zu einem anderen Konto
POST /api/v1/domains/search/

Domain-Verfügbarkeit suchen

Prüft, ob ein Name über etwa 20 beliebte Erweiterungen (com, net, org, io, dev, co, app, ai und mehr) verfügbar ist, sowie die Erweiterung, die Sie eingegeben haben, wenn es nicht unter ihnen ist. Ergebnisse beginnen mit dem genauen Match, dann verfügbare Namen, dann genommene.

Erforderliche Genehmigung: domains:search

Anfragekörperparameter

Parameter Typ Erforderlich Description
domain string Ja Name mit oder ohne Erweiterung, z.B. mysite oder mysite.com (2 bis 63 Zeichen)

Beispielanfrage

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/domains/search/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.com"}'
import requests

url = "https://admin.vps.org/api/v1/domains/search/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.post(url, headers=headers, json={"domain": "mysite.com"})
for result in response.json()["results"]:
    if result["available"]:
        print(result["domain"], result["registration_price"], result["renewal_price"])

Beispielantwort

{
  "results": [
    {
      "domain": "mysite.com",
      "available": false,
      "price": null,
      "registration_price": null,
      "renewal_price": null,
      "tld": "com",
      "is_exact_match": true
    },
    {
      "domain": "mysite.dev",
      "available": true,
      "price": 17.24,
      "registration_price": 17.24,
      "renewal_price": 17.24,
      "tld": "dev",
      "is_exact_match": false
    }
  ],
  "base_domain": "mysite",
  "search_count": 20
}

Die Preise sind Zahlen in USD für ein Jahr und sind null für Namen, die nicht verfügbar sind. Die angegebenen Preise sind illustrativ.

Antwortstatuscodes

200 Erfolg
400 Fehlende Domäne, oder es enthält Zeichen außer Buchstaben, Ziffern und Bindestriche
500 Der Registrar-Lookup ist fehlgeschlagen.
POST /api/v1/domains/register/

Neue Domain registrieren

Registriert eine Domain und berechnet Ihre gespeicherte Zahlungsart. Verfügbarkeit und Preis werden direkt vor der Gebühr beim Registrar erneut überprüft. Die Kontaktdaten des Registrators werden aus Ihrem Kontoprofil übernommen. Lehnt der Registrar die Registrierung nach der Gebühr ab, wird die Zahlung zurückerstattet.

Erforderliche Genehmigung: domains:register (erteilt durch Domänen:*)

Anfragekörperparameter

Parameter Typ Erforderlich Description
domain string Ja Der vollständige Domainname einschließlich seiner Erweiterung, zum Beispiel.com
years integer No Registrierungsfrist, 1 bis 10 (Standard 1). Der Preis ist die jährliche Preis mal Jahre..ai benötigt mindestens 2 Jahre; ein kleinerer Wert ergibt 400.
curl -X POST "https://admin.vps.org/api/v1/domains/register/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "mysite.dev", "years": 1}'

Beispielantwort

{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "domain_name": "mysite.dev",
  "message": "mysite.dev registered successfully!"
}

Antwortstatuscodes

201 Domain registriert
400 Ungültige Domain, Domain nicht mehr verfügbar, Preis konnte nicht überprüft werden, veraltete Zahlungsmethode, oder die Zahlung fehlgeschlagen
402 Keine Zahlungsmethode in der Akte oder unbezahlte Rechnungen
500 Die Zahlung konnte nicht verarbeitet werden, oder der Registrar lehnte die Registrierung nach der Zahlung. Im zweiten Fall die Fehlermeldung sagt, ob die Rückerstattung ging durch.
POST /api/v1/domains/{uuid}/renew/

Eine Domain neu erstellen

Erneuert die Domain und berechnet ihren renewment_price für jedes Jahr auf Ihre gespeicherte Zahlungsmethode.

Erforderliche Genehmigung: domains:renew

Anfragekörperparameter

Parameter Typ Erforderlich Description
years integer No Jahre zu addieren, 1 bis 10 (Standard 1)
curl -X POST "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"years": 1}'
{
  "success": true,
  "domain_uuid": "e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c",
  "new_expiration": "2028-01-15T10:30:00+00:00",
  "message": "example.com renewed successfully for 1 year(s)!"
}

Antwortstatuscodes

200 Domain verlängert
400 Ungültige Jahre, kein Verlängerungspreis für die Domain, keine nutzbare Zahlungsmethode oder die Zahlung fehlgeschlagen
404 Nicht gefunden, oder es gehört zu einem anderen Konto
500 Die Zahlung konnte nicht verarbeitet werden, oder die Zahlung ging durch, aber die Registrar Erneuerung fehlgeschlagen. Kontakt Unterstützung in diesem Fall.
PUT /api/v1/domains/{uuid}/nameservers/

Nameserver aktualisieren

Legt die Namenserver der Domain im Registrar fest und gibt das aktualisierte Domainobjekt zurück. Um DNS mit der DNS-API zu verwalten, verwenden Sie ns1.vps.org, ns2.vps.org und ns3.vps.org und erstellen Sie eine Zone für die Domain.

Erforderliche Genehmigung: domains:update

Anfragekörperparameter

Parameter Typ Erforderlich Description
nameserver1 string Ja Primärnameserver Hostname
nameserver2, nameserver3, nameserver4 string No Zusätzliche Nameserver-Hostnamen
curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/nameservers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nameserver1": "ns1.vps.org", "nameserver2": "ns2.vps.org", "nameserver3": "ns3.vps.org"}'

Antwortstatuscodes

200 Nameserver aktualisiert; der Körper ist das Domain-Objekt
400 Nameserver1 fehlt
404 Nicht gefunden, oder es gehört zu einem anderen Konto
500 Das Update fehlgeschlagen; der Körper hat Fehler- und Nachrichtenfelder
PUT /api/v1/domains/{uuid}/auto-renew/

Auto-Erneuerung ein- oder ausschalten

Setzt auto_renew und gibt das aktualisierte Domainobjekt zurück. Senden als JSON-Boolean aktiviert: Jeder nicht-leere String, einschließlich des Strings false, schaltet Auto-Erneuerung ein.

Erforderliche Genehmigung: domains:update

curl -X PUT "https://admin.vps.org/api/v1/domains/e4b7a2c9-1d3f-4e5a-8b6c-7d8e9f0a1b2c/auto-renew/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": false}'

Antwortstatuscodes

200 Einstellung gespeichert; der Körper ist das Domänenobjekt
400 nicht aktiviert
404 Nicht gefunden, oder es gehört zu einem anderen Konto

Anmerkungen