REST API – DNS

Die WEDOS REST API befindet sich noch in Entwicklung. Zugriff und Funktionen können sich ohne vorherige Ankündigung ändern.

Dieser Artikel beschreibt den DNS-Endpoint der WEDOS REST API. Für WEDOS API (WAPI) siehe WAPI – WEDOS DNS.

Grundlegende Informationen zur WEDOS REST API finden Sie im WEDOS REST API Handbuch.

In diesem Artikel finden Sie die folgenden Informationen:


Zugriff auf den DNS-Endpoint

Die WDNS HTTP REST API v2 dient zur Verwaltung von DNS-Domains und deren DNS-Einträgen im Dienst WEDOS DNS (WDNS). Die API folgt den REST-Prinzipien und kommuniziert über JSON.

Basis-URL und Authentifizierung

Die Basis-URL für die DNS-Endpoints lautet: https://api.wedos.com/v2/dns

Die Authentifizierung erfolgt ausschließlich über ein OAuth2-Bearer-Token, gesendet im Header Authorization: Bearer <TOKEN>. Das Token muss den wdns Scope besitzen. Ohne gültiges Token oder mit einem Token ohne den erforderlichen Scope liefert die API einen Authentifizierungsfehler.

Jeder Endpoint unterstützt den Modus ?example=1 (bzw. &example=1 wenn die URL bereits andere Query-Parameter enthält). Er liefert einen Beispielaufruf (einen curl-Befehl) für diesen Endpoint, ohne dass echte Parameter nötig sind. Auch in diesem Modus ist ein gültiges Bearer-Token erforderlich.

Übersicht der Endpoints

MethodeEndpointBeschreibung
GET/domainsListe der Domains des angemeldeten Benutzers, mit Suche, Filterung, Sortierung und Seitennavigation
GET/domains/{domain}Domain-Detail
GET/domains/{domain}/axfr-tsigInformationen zum AXFR-TSIG-Schlüssel der Domain
GET/domains/{domain}/rowsListe der DNS-Einträge der Domain
GET/domains/{domain}/rows/{row_id}Detail eines einzelnen DNS-Eintrags
POST/domains/addNeue Domain anlegen
POST/domains/{domain}/commitAusstehende Änderungen der Domain übernehmen (Commit)
POST/domains/{domain}/copyKopie der Domain unter einem neuen Namen anlegen
POST/domains/{domain}/axfr-runAXFR-Transfer sofort starten (Secondary-Domain)
POST/domains/{domain}/axfr-tsigAXFR-TSIG-Schlüssel der Domain anlegen oder aufheben
POST/domains/{domain}/rowsDNS-Eintrag zur Domain hinzufügen
POST/domains/{domain}/zone-importDNS-Einträge der Domain importieren (per AXFR oder durch Einfügen von Text im BIND-Format)
PATCH/domains/{domain}Domain-Einstellungen ändern
PATCH/domains/{domain}/rows/{row_id}Bestehenden DNS-Eintrag ändern
DELETE/domains/{domain}Domain löschen
DELETE/domains/{domain}/rows/{row_id}DNS-Eintrag löschen

Antwortformat

Alle Erfolgs- und Fehlerantworten haben dieselbe JSON-Objektstruktur mit diesen Schlüsseln: code (Rückgabecode), msg (Textbeschreibung des Codes), request_id (Anfrage-Kennung) und optional data (Antwortdaten, nur wenn die Operation welche zurückgibt).


GET /domains

Liefert die Liste der Domains des angemeldeten Benutzers, mit Unterstützung für Suche, Filterung, Sortierung und Seitennavigation.

Parameter:

  • search – optional, String – Suche im Domainnamen (IDN wird unterstützt)
  • status – optional, String – Filter nach Domain-Status (z. B. active, disabled, deleted)
  • type – optional, String – Filter nach Domain-Typ (primary, secondary)
  • page – optional, Integer – Seitennummer, Standard 1
  • page_limit – optional, Integer – Datensätze pro Seite, Standard 50
  • orderby – optional, String – Sortierung in der Form column [ASC|DESC]; unterstützte Spalten sind domain und created_date; Standard ist domain ASC. Eine ungültige Spalte wird stillschweigend ignoriert und die Standardsortierung verwendet.

Rückgabecodes:

  • 1000 – OK
  • 5001 – interner Anmeldefehler

Antwortdaten:

  • domain – Array von Domains; jedes Element enthält name, status, type
  • total – Gesamtzahl der Domains, die dem Filter entsprechen
  • page – aktuelle Seite
  • page_limit – Datensätze pro Seite

Beispiel:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains?search=domain1&status=active&page=1&page_limit=50'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b70",
  "data": {
    "domain": [
      {"name": "domain1.cz", "status": "active", "type": "primary"},
      {"name": "domain1.com", "status": "active", "type": "secondary"}
    ],
    "total": 2,
    "page": 1,
    "page_limit": 50
  }
}

GET /domains/{domain}

Liefert detaillierte Informationen zu einer Domain.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 3222 – Öffnen der Domain fehlgeschlagen (z. B. existiert sie nicht)
  • 3223 – Autorisierungsfehler (die Domain gehört einem anderen Benutzer)
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 5001 – interner Anmeldefehler

Antwortdaten:

  • domain – Objekt mit den Domain-Details: name, status, type, tlock, autocommit, axfr_enabled, axfr_ips, changed, changed_date, commit_date, reload_pending, reload_pending_date, reload_date, disabled_date, enabled_date, add_date, rname, serial, refresh, retry, expire, minimum, rr_cnt, ns_out, ns

Beispiel:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b71",
  "data": {
    "domain": {
      "name": "domain1.tld",
      "status": "active",
      "type": "primary",
      "tlock": 0,
      "autocommit": 1,
      "axfr_enabled": 0,
      "axfr_ips": "",
      "changed": 0,
      "changed_date": null,
      "commit_date": "2026-09-30 12:00:00",
      "reload_pending": 0,
      "reload_pending_date": null,
      "reload_date": "2026-09-30 12:01:00",
      "disabled_date": null,
      "enabled_date": null,
      "add_date": "2026-01-15 09:30:00",
      "rname": "wedos.com",
      "serial": 2026093001,
      "refresh": 10800,
      "retry": 3600,
      "expire": 604800,
      "minimum": 3600,
      "rr_cnt": 12,
      "ns_out": 1,
      "ns": ["ns.wedos.cz", "ns.wedos.net", "ns.wedos.eu"]
    }
  }
}

GET /domains/{domain}/axfr-tsig

Liefert Informationen zum AXFR-TSIG-Schlüssel der Domain (dient zur Authentifizierung von AXFR-/IXFR-DNS-Transfers). Ist für die Domain kein TSIG eingerichtet, liefert der Endpoint den Fehler 2334.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname

Rückgabecodes:

  • 1000 – OK
  • 2334 – für die Domain ist kein AXFR-TSIG eingerichtet
  • 2337 – ungültiger AXFR-TSIG-Befehl
  • 2340 – maximale Anzahl von Domains in einer Sammelaktion überschritten
  • weitere Fehlercodes im Zusammenhang mit dem Öffnen der Domain – siehe GET /domains/{domain} (z. B. 3222, 3223, 3305, 3306)

Antwortdaten:

  • name – Domainname
  • axfr_tsig_action – ausgeführte Aktion, immer info
  • axfr_tsig_name – Name des TSIG-Schlüssels
  • axfr_tsig_alg – Algorithmus des TSIG-Schlüssels
  • axfr_tsig_key – Wert des TSIG-Schlüssels (base64)

Beispiel:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/axfr-tsig'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b72",
  "data": {
    "name": "example.cz",
    "axfr_tsig_action": "info",
    "axfr_tsig_name": "domain1.tld.",
    "axfr_tsig_alg": "hmac-sha256",
    "axfr_tsig_key": "asdfghJKL1234567890."
  }
}

GET /domains/{domain}/rows

Liefert die Liste der DNS-Einträge der Domain. Diese Operation kann für Secondary-Domains nicht ausgeführt werden (ihre Einträge werden vom Primary-Server verwaltet).

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 2318 – die Operation kann bei einer Secondary-Domain nicht ausgeführt werden
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Autorisierungsfehler
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 5001 – interner Anmeldefehler

Antwortdaten:

  • row – Array von DNS-Einträgen, jeweils mit den Schlüsseln ID, name, ttl, rdtype, rdata, changed_date, author_comment

Beispiel:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "1d6e8a5f3b73",
  "data": {
    "row": [
      {
        "ID": 123,
        "name": "www",
        "ttl": 1800,
        "rdtype": "A",
        "rdata": "46.28.105.2",
        "changed_date": "2026-09-30 12:00:00",
        "author_comment": "production server"
      },
      {
        "ID": 124,
        "name": "",
        "ttl": 3600,
        "rdtype": "MX",
        "rdata": "10 mail.wedos.com.",
        "changed_date": "2026-09-30 12:00:00",
        "author_comment": ""
      }
    ]
  }
}

GET /domains/{domain}/rows/{row_id}

Liefert das Detail eines einzelnen DNS-Eintrags der Domain.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname
  • row_id – erforderlich, Integer (Pfad) – ID des DNS-Eintrags

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 2318 – die Operation kann bei einer Secondary-Domain nicht ausgeführt werden
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Autorisierungsfehler
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 3309 – ein Eintrag mit dieser ID existiert nicht
  • 5001 – interner Anmeldefehler

Antwortdaten:

  • row – Objekt mit den Details des Eintrags: ID, name, ttl, rdtype, rdata, changed_date, author_comment

Beispiel:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows/123'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2",
  "data": {
    "row": {
      "ID": 123,
      "name": "www",
      "ttl": 1800,
      "rdtype": "A",
      "rdata": "46.28.105.2",
      "changed_date": "2026-09-30 12:00:00",
      "author_comment": "production server"
    }
  }
}

POST /domains/add

Legt eine neue Domain in WDNS an, entweder als Primary-Domain (die DNS-Einträge werden von WEDOS verwaltet) oder als Secondary-Domain (die Einträge werden per AXFR von einem externen Primary-Server übertragen).

Parameter:

  • name – erforderlich, String – Domainname
  • type – optional, String – primary oder secondary, Standard primary
  • axfr_enabled – optional, Boolean (0/1) – ausgehendes AXFR erlaubt, Standard 0
  • axfr_ips – optional, String oder Array von Strings – für ausgehendes AXFR erlaubte IP-Adressen (eine Zeichenkette mit durch Leerzeichen getrennten Adressen oder ein JSON-Array von Adressen); erforderlich, wenn axfr_enabled=1
  • primary_ip – optional (erforderlich für type=secondary), String – IPv4-Adresse des Primary-Servers, von dem die Einträge übertragen werden
  • primary_tsig_enabled – optional, Boolean – erfordert TSIG-Authentifizierung des eingehenden AXFR (nur für type=secondary)
  • primary_tsig_name – optional (erforderlich, wenn primary_tsig_enabled=1), String – Name des TSIG-Schlüssels
  • primary_tsig_alg – optional (erforderlich, wenn primary_tsig_enabled=1), String – Algorithmus des TSIG-Schlüssels; unterstützte Werte: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384, hmac-sha512
  • primary_tsig_key – optional (erforderlich, wenn primary_tsig_enabled=1), String – base64-kodierter Wert des TSIG-Schlüssels (minimale dekodierte Schlüssellänge 8 Byte)
  • template_id – optional, Integer – ID der Vorlage, nach der die Domain angelegt wird; gilt nur für type=primary

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 2301 – ungültiges Format von type
  • 2302 – Parameter primary_ip fehlt
  • 2303 – ungültiges Format von primary_ip
  • 2304 – ungültiges Format von axfr_enabled
  • 2305 – erforderlicher Parameter axfr_ips fehlt
  • 2306 – ungültiges Format von axfr_ips
  • 2322 – Domain-Limit in WDNS für dieses Konto überschritten
  • 2323 – Vorlage nicht gefunden
  • 2324 – eine Vorlage kann nur zum Anlegen einer Primary-Domain verwendet werden
  • 2325 – keine Vorlage definiert
  • 2330–2333 – ungültige TSIG-Konfiguration (insgesamt, Name, Algorithmus, Schlüssel)
  • 2355 – die AXFR-IP-Adresse ist ungültig
  • 2366 – axfr_ips ist als Zeichenkette länger als 255 Zeichen
  • 2367 – keine IP-Adresse für ausgehendes AXFR angegeben
  • 3302 – Hinzufügen der Domain zu WDNS fehlgeschlagen
  • 3303 – die Domain existiert in WDNS bereits
  • 5001 – interner Autorisierungsfehler

Antwortdaten:

  • domain_id – interne ID der neu angelegten Domain
  • name – Domainname

Beispiel:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/add' \
  --data '{"name":"domain1.tld","type":"primary"}'

Request-Body:

{
  "name": "domain1.tld",
  "type": "primary"
}

Antwort:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b75",
  "data": {
    "domain_id": 48213,
    "name": "domain1.tld"
  }
}

POST /domains/{domain}/commit

Übernimmt die ausstehenden Änderungen der Domain (Commit) und überträgt sie auf die produktiven DNS-Server.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Autorisierungsfehler
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 5001 – interner Autorisierungsfehler

Antwortdaten: Der Endpoint liefert keine Daten; den Erfolg signalisiert der Code 1000.

Beispiel:

curl -X POST -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/commit'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b76"
}

POST /domains/{domain}/copy

Legt eine Kopie einer bestehenden Domain (einschließlich ihrer DNS-Einträge) unter einem neuen Namen an.

Parameter:

  • domain – erforderlich, String (Pfad) – Name der Quell-Domain
  • name_new – erforderlich, String (Request-Body) – Name der neuen Domain

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 2320 – ungültiger oder nicht unterstützter neuer Domainname
  • 2321 – nicht unterstützte TLD des neuen Domainnamens
  • 2322 – Limit für DNS-Einträge pro Benutzer überschritten
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Autorisierungsfehler
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 3311 – Kopieren fehlgeschlagen
  • 3312 – eine Domain mit diesem Namen existiert bereits
  • 5001 – interner Autorisierungsfehler

Antwortdaten: Der Endpoint liefert keine Daten; den Erfolg signalisiert der Code 1000.

Beispiel:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/copy' \
  --data '{"name_new":"domain2.tld"}'

Request-Body:

{
  "name_new": "domain2.tld"
}

Antwort:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b77"
}

POST /domains/{domain}/axfr-run

Startet sofort einen AXFR-Transfer der DNS-Einträge für eine Secondary-Domain (außerhalb des regulären Zeitplans).

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 2319 – kann nur bei einer Secondary-Domain ausgeführt werden
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Autorisierungsfehler
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 5001 – interner Autorisierungsfehler

Antwortdaten:

  • next_run – Zeitpunkt der nächsten geplanten Aktualisierung

Beispiel:

curl -X POST -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/axfr-run'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b78",
  "data": {
    "next_run": "2026-10-01 09:15:00"
  }
}

POST /domains/{domain}/axfr-tsig

Legt den AXFR-TSIG-Schlüssel der Domain an oder hebt ihn auf (Authentifizierung ausgehender AXFR-/IXFR-Transfers).

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname
  • action – optional, String (Request-Body) – create (anlegen/aktualisieren) oder cancel, Standard create; intern entspricht der Wert dem WAPI-Parameter axfr_tsig_action

Rückgabecodes:

  • 1000 – OK
  • 2335 – AXFR-TSIG wurde für die Domain nicht angelegt
  • 2336 – AXFR-TSIG wurde für die Domain nicht aufgehoben
  • 2337 – ungültiger AXFR-TSIG-Befehl
  • 2340 – maximale Anzahl von Domains in einer Sammelaktion überschritten
  • weitere Fehlercodes im Zusammenhang mit dem Öffnen der Domain – siehe GET /domains/{domain} (z. B. 3222, 3223, 3305, 3306)

Antwortdaten:

  • name – Domainname
  • axfr_tsig_action – ausgeführte Aktion (create/cancel)
  • axfr_tsig_name – Name des TSIG-Schlüssels (nur für create)
  • axfr_tsig_alg – Algorithmus des TSIG-Schlüssels (nur für create)
  • axfr_tsig_key – Wert des TSIG-Schlüssels, base64 (nur für create)

Beispiel:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/axfr-tsig' \
  --data '{"action":"create"}'

Request-Body:

{
  "action": "create"
}

Antwort:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b79",
  "data": {
    "name": "example.cz",
    "axfr_tsig_action": "create",
    "axfr_tsig_name": "example.cz.",
    "axfr_tsig_alg": "hmac-sha256",
    "axfr_tsig_key": "asdfghJKL1234567890"
  }
}

POST /domains/{domain}/rows

Fügt der Domain einen neuen DNS-Eintrag hinzu.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname
  • name – erforderlich, String (Request-Body) – Name des Eintrags; eine leere Zeichenkette bedeutet einen Eintrag auf Ebene der Domain selbst (Apex)
  • ttl – erforderlich, Integer (Request-Body) – TTL des Eintrags in Sekunden, Wert ungleich null
  • type – erforderlich, String (Request-Body) – Typ des Eintrags; unterstützte Werte: A, AAAA, ALIAS, CAA, CNAME, DNAME, HTTPS, MX, NAPTR, NS, SRV, SSHFP, TLSA, TXT
  • rdata – erforderlich, String (Request-Body) – Daten des Eintrags (das Format hängt vom Typ des Eintrags ab)
  • author_comment – optional, String (Request-Body) – Kommentar des Autors; erlaubt sind nur Buchstaben ohne diakritische Zeichen, Ziffern und Leerzeichen; ältere Clients senden möglicherweise auth_comment stattdessen (ein gleichwertiger Alias)

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 2298 – Parameter author_comment enthält ungültige Zeichen
  • 2309 – ungültiger Typ des Eintrags
  • 2310 – es kann kein weiterer Eintrag zur Domain hinzugefügt werden (Eintragslimit erreicht)
  • 2311 – ungültiger Name des Eintrags
  • 2312 – ungültiger Name für den angegebenen Typ des Eintrags
  • 2313 – ungültiger CNAME für diesen Namen
  • 2314 – ungültige Daten des Eintrags
  • 2315 – ungültige TLD
  • 2316 – dieser Eintrag existiert bereits
  • 2317 – ungültige TTL
  • 2318 – die Operation kann bei einer Secondary-Domain nicht ausgeführt werden
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Autorisierungsfehler
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 3307 – Hinzufügen des Domain-Eintrags fehlgeschlagen
  • 5001 – interner Autorisierungsfehler

Antwortdaten:

  • domain – Domainname
  • row_id – ID des neu angelegten Eintrags

Beispiel:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows' \
  --data '{"name":"www","ttl":1800,"type":"A","rdata":"46.28.105.2"}'

Request-Body:

{
  "name": "www",
  "ttl": 1800,
  "type": "A",
  "rdata": "46.28.105.2"
}

Antwort:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b80",
  "data": {
    "domain": "domain1.tld",
    "row_id": 125
  }
}

POST /domains/{domain}/zone-import

Importiert die DNS-Einträge der Domain. Es werden zwei Modi (import_type) unterstützt:

  • axfr – der Endpoint versucht, die Einträge per AXFR von der angegebenen IP-Adresse herunterzuladen, und gibt sie als Text im BIND-Format zur manuellen Prüfung zurück. Dieser Aufruf importiert die Einträge nicht automatisch. Um sie zu importieren, kopieren Sie sie und senden Sie sie in einem separaten Aufruf mit import_type=text.
  • text – die im BIND-Format im Parameter rows übergebenen Einträge werden validiert und direkt in die Domain importiert.

Der Import ist nur für eine Primary-Domain möglich.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname
  • import_type – erforderlich, String (Request-Body) – axfr oder text
  • axfr_ip – erforderlich für import_type=axfr, String (Request-Body) – IPv4-Adresse des DNS-Servers, von dem die Einträge per AXFR heruntergeladen werden
  • rows – erforderlich für import_type=text, String (Request-Body) – DNS-Einträge als Text im BIND-Format (kein JSON-Array, sondern eine einzelne mehrzeilige Zeichenkette)

Rückgabecodes:

  • 1000 – OK
  • 2338 – Sie haben keine Berechtigung, diese Domain zu bearbeiten
  • 2350 – ungültiger Wert des Import-Typs
  • 2351 – Liste der DNS-Einträge fehlt (rows nicht angegeben bei import_type=text)
  • 2352 – von der angegebenen IP konnten keine Daten für den Import bezogen werden
  • 2353 – die importierte DNS-Liste enthält einen ungültigen Eintrag; der Import wurde nicht durchgeführt
  • 2354 – AXFR-IP-Adresse fehlt
  • 2355 – die AXFR-IP-Adresse ist ungültig
  • 2357 – aus dem Text konnten keine Daten für den Import bezogen werden
  • 2358 – 2 identische Einträge (Name, Typ, Daten) können nicht importiert werden
  • 2359 – maximale Anzahl von Einträgen überschritten
  • 2360 – ein CNAME-Eintrag kann nicht importiert werden, wenn für seinen Namen ein anderer Eintrag existiert
  • 2363 – Einträge desselben Typs müssen dieselbe TTL haben
  • 2364 – die DNS-Einträge wurden nicht importiert (interner Importfehler)
  • 2365 – die AXFR-IP-Adresse muss im IPv4-Format vorliegen
  • 2368 – der Import ist nur für eine Primary-Domain zulässig

Antwortdaten:

  • für import_type=axfr: name, import_type, axfr_ip, desc (beschreibender Hinweis), rows (heruntergeladene Einträge im BIND-Format, eingerahmt von --- BEGIN ---/--- END ---, zum Kopieren in einen Folgeaufruf mit import_type=text)
  • für import_type=text (erfolgreicher Import): name, import_type, source_rows (Eingabetext), imported_rows (tatsächlich importierte Einträge, im BIND-Format)

Beispiel:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/zone-import' \
  --data '{"import_type":"text","rows":"www IN A 46.28.105.2\nmail IN A 46.28.105.3"}'

Request-Body:

{
  "import_type": "text",
  "rows": "www IN A 46.28.105.2\nmail IN A 46.28.105.3"
}

Antwort:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b81",
  "data": {
    "name": "example.cz",
    "import_type": "text",
    "source_rows": "\n--- BEGIN ---\nwww IN A 46.28.105.2\nmail IN A 46.28.105.3\n--- END ---",
    "imported_rows": "\n--- BEGIN ---\nwww 3600 IN A 46.28.105.2\nmail 3600 IN A 46.28.105.3\n--- END ---"
  }
}

PATCH /domains/{domain}

Ändert die Einstellungen einer bestehenden Domain (AXFR- und TSIG-Parameter). Name und Typ der Domain können mit dieser Operation nicht geändert werden.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname
  • axfr_enabled – optional, Boolean (0/1) – ausgehendes AXFR erlaubt
  • axfr_ips – optional, String oder Array von Strings – für ausgehendes AXFR erlaubte IP-Adressen (eine Zeichenkette mit durch Leerzeichen getrennten Adressen oder ein JSON-Array von Adressen); erforderlich beim Setzen von axfr_enabled=1
  • primary_ip – optional, String – IPv4-Adresse des Primary-Servers (nur Secondary-Domain)
  • primary_tsig_enabled – optional, Boolean – erfordert TSIG-Authentifizierung des eingehenden AXFR (nur Secondary-Domain)
  • primary_tsig_name – optional, String – Name des TSIG-Schlüssels
  • primary_tsig_alg – optional, String – Algorithmus des TSIG-Schlüssels (hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384, hmac-sha512)
  • primary_tsig_key – optional, String – Wert des TSIG-Schlüssels, base64

Rückgabecodes:

  • 1000 – OK
  • 2007 – maximale Anfragegröße überschritten
  • 2100 – Eingabeparameter fehlt
  • 2101 – ungültige Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger oder nicht unterstützter Domainname
  • 2303 – ungültiges Format von primary_ip
  • 2304 – ungültiges Format von axfr_enabled
  • 2305 – erforderlicher Parameter axfr_ips fehlt
  • 2306 – ungültiges Format von axfr_ips
  • 2330–2333 – ungültige TSIG-Konfiguration (insgesamt, Name, Algorithmus, Schlüssel)
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Autorisierungsfehler
  • 3304 – Aktualisieren des Domain-Eintrags fehlgeschlagen
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 5001 – interner Authentifizierungsfehler

Antwortdaten: Der Endpoint liefert keine Daten; den Erfolg signalisiert der Code 1000.

Beispiel:

curl -X PATCH -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld' \
  --data '{"axfr_enabled":1,"axfr_ips":"46.28.105.2 46.28.105.3"}'

Request-Body:

{
  "axfr_enabled": 1,
  "axfr_ips": "46.28.105.2 46.28.105.3"
}

Antwort:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b82"
}

PATCH /domains/{domain}/rows/{row_id}

Ändert einen bestehenden DNS-Eintrag. Name und Typ des Eintrags können mit dieser Operation nicht geändert werden; um sie zu ändern, löschen Sie den ursprünglichen Eintrag und legen Sie einen neuen an.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname
  • row_id – erforderlich, Integer (Pfad) – ID des DNS-Eintrags
  • ttl – erforderlich, Integer (Request-Body) – neuer TTL-Wert in Sekunden
  • rdata – erforderlich, String (Request-Body) – neue Daten des Eintrags
  • author_comment – optional, String (Request-Body) – Kommentar des Autors; erlaubt sind nur Buchstaben ohne diakritische Zeichen, Ziffern und Leerzeichen; ältere Clients senden möglicherweise auth_comment stattdessen

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger Domainname
  • 2298 – Parameter author_comment enthält ungültige Zeichen
  • 2314 – ungültige Daten des Eintrags
  • 2316 – dieser Eintrag existiert bereits
  • 2317 – ungültige TTL
  • 2318 – die Operation kann bei einer Secondary-Domain nicht ausgeführt werden
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Autorisierungsfehler
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 3309 – ein Eintrag mit dieser ID existiert nicht
  • 3310 – Ändern des Eintrags fehlgeschlagen
  • 5001 – interner Autorisierungsfehler

Antwortdaten: Der Endpoint liefert keine Daten; den Erfolg signalisiert der Code 1000.

Beispiel:

curl -X PATCH -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows/123' \
  --data '{"ttl":3600,"rdata":"46.28.105.3"}'

Request-Body:

{
  "ttl": 3600,
  "rdata": "46.28.105.3"
}

Antwort:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b83"
}

DELETE /domains/{domain}

Löscht die Domain aus WDNS.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger oder nicht unterstützter Domainname
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Zugriff verweigert
  • 3301 – Entfernen des Domain-Eintrags fehlgeschlagen
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist bereits gelöscht
  • 5001 – interner Autorisierungsfehler

Antwortdaten: Der Endpoint liefert keine Daten; den Erfolg signalisiert der Code 1000.

Beispiel:

curl -X DELETE -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b84"
}

DELETE /domains/{domain}/rows/{row_id}

Löscht einen DNS-Eintrag der Domain.

Parameter:

  • domain – erforderlich, String (Pfad) – Domainname
  • row_id – erforderlich, Integer (Pfad) – ID des DNS-Eintrags

Rückgabecodes:

  • 1000 – OK
  • 2100 – erforderlicher Parameter fehlt
  • 2101 – ungültiger Eingabeparameter
  • 2201 – nicht unterstützte TLD
  • 2202 – ungültiger oder nicht unterstützter Domainname
  • 2318 – die Operation kann bei einer Secondary-Domain nicht ausgeführt werden
  • 3222 – Öffnen der Domain fehlgeschlagen
  • 3223 – Zugriff verweigert
  • 3305 – die Domain ist gesperrt
  • 3306 – die Domain ist gelöscht
  • 3308 – Löschen des Eintrags fehlgeschlagen
  • 3309 – ein Eintrag mit dieser ID existiert nicht
  • 5001 – interner Autorisierungsfehler

Antwortdaten: Der Endpoint liefert keine Daten; den Erfolg signalisiert der Code 1000.

Beispiel:

curl -X DELETE -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows/123'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b85"
}

Hinweise

  • Neben den bei den einzelnen Endpoints aufgeführten Fehlercodes können allgemeine Fehler der REST-Schicht auftreten, die für alle Endpoints gelten: 2000 (OAuth2-Bearer-Token fehlt oder ist ungültig), 2004 (maximale Anfragegröße überschritten – URL/Query-String oder Request-Body), 4000 (unbekannte/nicht unterstützte Kombination aus URL-Pfad und HTTP-Methode), 4001 (Eingabevalidierung fehlgeschlagen), 4005 (kein Beispiel für diesen Endpoint im Modus ?example=1 definiert) und 6000 (interner Initialisierungsfehler der WAPI-Schicht). Fehlt bei den Methoden PATCH/DELETE das Segment {domain} in der URL, so wird der Fehler 6001 zurückgegeben (erforderlicher Parameter domain fehlt).
  • Eine nicht erkannte Kombination von URL-Segmenten (z. B. /domains/{domain}/rows ohne {row_id} bei PATCH/DELETE) liefert immer den Fehler 4000. Es erfolgt nie ein stillschweigender Rückfall auf eine andere Operation (z. B. auf die Ebene der gesamten Domain).
  • Die REST-Schicht akzeptiert axfr_ips entweder als Zeichenkette mit durch Leerzeichen getrennten IP-Adressen oder als JSON-Array von Adressen. Vor dem Aufruf des zugrunde liegenden WAPI-Befehls normalisiert sie beide Varianten in ein internes Format. Eine leere Zeichenkette wird als kein Wert behandelt.
  • Die Parameter primary_ip und primary_tsig_* wirken sich nur bei Domains vom Typ secondary.
  • template_id gilt beim Anlegen einer Domain (POST /domains/add) nur für eine Primary-Domain (type=primary oder nicht angegeben). Bei einer Secondary-Domain liefert er den Fehler 2324.
  • rr_limit (maximale Anzahl von DNS-Einträgen für eine Domain) ist kein unterstützter Parameter von POST /domains/add. Der Endpoint akzeptiert ihn nicht; das Limit richtet sich nach dem Konto bzw. der Vorlage.
  • Bei POST /domains/{domain}/zone-import ist es wichtig, die beiden Modi von import_type zu unterscheiden: axfr – lädt die Einträge nur herunter und gibt sie als Text zur manuellen Prüfung zurück (es wird nichts importiert), während text die Einträge nach der Validierung direkt in die Domain schreibt. Der typische Ablauf ist daher: zuerst import_type=axfr aufrufen, den zurückgegebenen Text prüfen und ihn erst danach erneut senden – als import_type=text.
  • author_comment (beim Hinzufügen/Ändern eines DNS-Eintrags) erlaubt nur Buchstaben ohne diakritische Zeichen, Ziffern und Leerzeichen. Ältere Clients können stattdessen den Parameter auth_comment mit derselben Bedeutung verwenden.
  • Die Felder name und type eines DNS-Eintrags können nicht über PATCH /domains/{domain}/rows/{row_id} geändert werden. Um sie zu ändern, löschen Sie den Eintrag und fügen Sie ihn erneut hinzu.
  • Die Eigentümerschaft der Domain wird bei jeder Operation anhand des angemeldeten Benutzers geprüft (ermittelt aus dem OAuth2-Token). Gehört die Domain einem anderen Benutzer, wird der Fehler 3223 zurückgegeben.

War das hilfreich?

Danke für Ihr Feedback!
Allgemeine Selektoren
Nur exakte Übereinstimmungen
In Titeln suchen
In Inhalten suchen
Post Type Selectors