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
- Details zum DNS-Endpoint:
- GET /domains
- GET /domains/{domain}
- GET /domains/{domain}/axfr-tsig
- GET /domains/{domain}/rows
- GET /domains/{domain}/rows/{row_id}
- POST /domains/add
- POST /domains/{domain}/commit
- POST /domains/{domain}/copy
- POST /domains/{domain}/axfr-run
- POST /domains/{domain}/axfr-tsig
- POST /domains/{domain}/rows
- POST /domains/{domain}/zone-import
- PATCH /domains/{domain}
- PATCH /domains/{domain}/rows/{row_id}
- DELETE /domains/{domain}
- DELETE /domains/{domain}/rows/{row_id}
- Hinweise
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
| Methode | Endpoint | Beschreibung |
|---|---|---|
| GET | /domains | Liste der Domains des angemeldeten Benutzers, mit Suche, Filterung, Sortierung und Seitennavigation |
| GET | /domains/{domain} | Domain-Detail |
| GET | /domains/{domain}/axfr-tsig | Informationen zum AXFR-TSIG-Schlüssel der Domain |
| GET | /domains/{domain}/rows | Liste der DNS-Einträge der Domain |
| GET | /domains/{domain}/rows/{row_id} | Detail eines einzelnen DNS-Eintrags |
| POST | /domains/add | Neue Domain anlegen |
| POST | /domains/{domain}/commit | Ausstehende Änderungen der Domain übernehmen (Commit) |
| POST | /domains/{domain}/copy | Kopie der Domain unter einem neuen Namen anlegen |
| POST | /domains/{domain}/axfr-run | AXFR-Transfer sofort starten (Secondary-Domain) |
| POST | /domains/{domain}/axfr-tsig | AXFR-TSIG-Schlüssel der Domain anlegen oder aufheben |
| POST | /domains/{domain}/rows | DNS-Eintrag zur Domain hinzufügen |
| POST | /domains/{domain}/zone-import | DNS-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 1page_limit– optional, Integer – Datensätze pro Seite, Standard 50orderby– optional, String – Sortierung in der Formcolumn [ASC|DESC]; unterstützte Spalten sinddomainundcreated_date; Standard istdomain ASC. Eine ungültige Spalte wird stillschweigend ignoriert und die Standardsortierung verwendet.
Rückgabecodes:
1000– OK5001– interner Anmeldefehler
Antwortdaten:
domain– Array von Domains; jedes Element enthältname,status,typetotal– Gesamtzahl der Domains, die dem Filter entsprechenpage– aktuelle Seitepage_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– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname3222– Öffnen der Domain fehlgeschlagen (z. B. existiert sie nicht)3223– Autorisierungsfehler (die Domain gehört einem anderen Benutzer)3305– die Domain ist gesperrt3306– die Domain ist gelöscht5001– 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– OK2334– für die Domain ist kein AXFR-TSIG eingerichtet2337– ungültiger AXFR-TSIG-Befehl2340– 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– Domainnameaxfr_tsig_action– ausgeführte Aktion, immerinfoaxfr_tsig_name– Name des TSIG-Schlüsselsaxfr_tsig_alg– Algorithmus des TSIG-Schlüsselsaxfr_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– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname2318– die Operation kann bei einer Secondary-Domain nicht ausgeführt werden3222– Öffnen der Domain fehlgeschlagen3223– Autorisierungsfehler3305– die Domain ist gesperrt3306– die Domain ist gelöscht5001– interner Anmeldefehler
Antwortdaten:
row– Array von DNS-Einträgen, jeweils mit den SchlüsselnID,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) – Domainnamerow_id– erforderlich, Integer (Pfad) – ID des DNS-Eintrags
Rückgabecodes:
1000– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname2318– die Operation kann bei einer Secondary-Domain nicht ausgeführt werden3222– Öffnen der Domain fehlgeschlagen3223– Autorisierungsfehler3305– die Domain ist gesperrt3306– die Domain ist gelöscht3309– ein Eintrag mit dieser ID existiert nicht5001– 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 – Domainnametype– optional, String –primaryodersecondary, Standardprimaryaxfr_enabled– optional, Boolean (0/1) – ausgehendes AXFR erlaubt, Standard 0axfr_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, wennaxfr_enabled=1primary_ip– optional (erforderlich fürtype=secondary), String – IPv4-Adresse des Primary-Servers, von dem die Einträge übertragen werdenprimary_tsig_enabled– optional, Boolean – erfordert TSIG-Authentifizierung des eingehenden AXFR (nur fürtype=secondary)primary_tsig_name– optional (erforderlich, wennprimary_tsig_enabled=1), String – Name des TSIG-Schlüsselsprimary_tsig_alg– optional (erforderlich, wennprimary_tsig_enabled=1), String – Algorithmus des TSIG-Schlüssels; unterstützte Werte:hmac-md5,hmac-sha1,hmac-sha224,hmac-sha256,hmac-sha384,hmac-sha512primary_tsig_key– optional (erforderlich, wennprimary_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ürtype=primary
Rückgabecodes:
1000– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname2301– ungültiges Format vontype2302– Parameterprimary_ipfehlt2303– ungültiges Format vonprimary_ip2304– ungültiges Format vonaxfr_enabled2305– erforderlicher Parameteraxfr_ipsfehlt2306– ungültiges Format vonaxfr_ips2322– Domain-Limit in WDNS für dieses Konto überschritten2323– Vorlage nicht gefunden2324– eine Vorlage kann nur zum Anlegen einer Primary-Domain verwendet werden2325– keine Vorlage definiert2330–2333– ungültige TSIG-Konfiguration (insgesamt, Name, Algorithmus, Schlüssel)2355– die AXFR-IP-Adresse ist ungültig2366–axfr_ipsist als Zeichenkette länger als 255 Zeichen2367– keine IP-Adresse für ausgehendes AXFR angegeben3302– Hinzufügen der Domain zu WDNS fehlgeschlagen3303– die Domain existiert in WDNS bereits5001– interner Autorisierungsfehler
Antwortdaten:
domain_id– interne ID der neu angelegten Domainname– 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– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname3222– Öffnen der Domain fehlgeschlagen3223– Autorisierungsfehler3305– die Domain ist gesperrt3306– die Domain ist gelöscht5001– 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-Domainname_new– erforderlich, String (Request-Body) – Name der neuen Domain
Rückgabecodes:
1000– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname2320– ungültiger oder nicht unterstützter neuer Domainname2321– nicht unterstützte TLD des neuen Domainnamens2322– Limit für DNS-Einträge pro Benutzer überschritten3222– Öffnen der Domain fehlgeschlagen3223– Autorisierungsfehler3305– die Domain ist gesperrt3306– die Domain ist gelöscht3311– Kopieren fehlgeschlagen3312– eine Domain mit diesem Namen existiert bereits5001– 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– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname2319– kann nur bei einer Secondary-Domain ausgeführt werden3222– Öffnen der Domain fehlgeschlagen3223– Autorisierungsfehler3305– die Domain ist gesperrt3306– die Domain ist gelöscht5001– 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) – Domainnameaction– optional, String (Request-Body) –create(anlegen/aktualisieren) odercancel, Standardcreate; intern entspricht der Wert dem WAPI-Parameteraxfr_tsig_action
Rückgabecodes:
1000– OK2335– AXFR-TSIG wurde für die Domain nicht angelegt2336– AXFR-TSIG wurde für die Domain nicht aufgehoben2337– ungültiger AXFR-TSIG-Befehl2340– 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– Domainnameaxfr_tsig_action– ausgeführte Aktion (create/cancel)axfr_tsig_name– Name des TSIG-Schlüssels (nur fürcreate)axfr_tsig_alg– Algorithmus des TSIG-Schlüssels (nur fürcreate)axfr_tsig_key– Wert des TSIG-Schlüssels, base64 (nur fürcreate)
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) – Domainnamename– 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 nulltype– erforderlich, String (Request-Body) – Typ des Eintrags; unterstützte Werte:A,AAAA,ALIAS,CAA,CNAME,DNAME,HTTPS,MX,NAPTR,NS,SRV,SSHFP,TLSA,TXTrdata– 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öglicherweiseauth_commentstattdessen (ein gleichwertiger Alias)
Rückgabecodes:
1000– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname2298– Parameterauthor_commententhält ungültige Zeichen2309– ungültiger Typ des Eintrags2310– es kann kein weiterer Eintrag zur Domain hinzugefügt werden (Eintragslimit erreicht)2311– ungültiger Name des Eintrags2312– ungültiger Name für den angegebenen Typ des Eintrags2313– ungültiger CNAME für diesen Namen2314– ungültige Daten des Eintrags2315– ungültige TLD2316– dieser Eintrag existiert bereits2317– ungültige TTL2318– die Operation kann bei einer Secondary-Domain nicht ausgeführt werden3222– Öffnen der Domain fehlgeschlagen3223– Autorisierungsfehler3305– die Domain ist gesperrt3306– die Domain ist gelöscht3307– Hinzufügen des Domain-Eintrags fehlgeschlagen5001– interner Autorisierungsfehler
Antwortdaten:
domain– Domainnamerow_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 mitimport_type=text.text– die im BIND-Format im Parameterrowsü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) – Domainnameimport_type– erforderlich, String (Request-Body) –axfrodertextaxfr_ip– erforderlich fürimport_type=axfr, String (Request-Body) – IPv4-Adresse des DNS-Servers, von dem die Einträge per AXFR heruntergeladen werdenrows– erforderlich fürimport_type=text, String (Request-Body) – DNS-Einträge als Text im BIND-Format (kein JSON-Array, sondern eine einzelne mehrzeilige Zeichenkette)
Rückgabecodes:
1000– OK2338– Sie haben keine Berechtigung, diese Domain zu bearbeiten2350– ungültiger Wert des Import-Typs2351– Liste der DNS-Einträge fehlt (rowsnicht angegeben beiimport_type=text)2352– von der angegebenen IP konnten keine Daten für den Import bezogen werden2353– die importierte DNS-Liste enthält einen ungültigen Eintrag; der Import wurde nicht durchgeführt2354– AXFR-IP-Adresse fehlt2355– die AXFR-IP-Adresse ist ungültig2357– aus dem Text konnten keine Daten für den Import bezogen werden2358– 2 identische Einträge (Name, Typ, Daten) können nicht importiert werden2359– maximale Anzahl von Einträgen überschritten2360– ein CNAME-Eintrag kann nicht importiert werden, wenn für seinen Namen ein anderer Eintrag existiert2363– Einträge desselben Typs müssen dieselbe TTL haben2364– die DNS-Einträge wurden nicht importiert (interner Importfehler)2365– die AXFR-IP-Adresse muss im IPv4-Format vorliegen2368– 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 mitimport_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) – Domainnameaxfr_enabled– optional, Boolean (0/1) – ausgehendes AXFR erlaubtaxfr_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 vonaxfr_enabled=1primary_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üsselsprimary_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– OK2007– maximale Anfragegröße überschritten2100– Eingabeparameter fehlt2101– ungültige Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger oder nicht unterstützter Domainname2303– ungültiges Format vonprimary_ip2304– ungültiges Format vonaxfr_enabled2305– erforderlicher Parameteraxfr_ipsfehlt2306– ungültiges Format vonaxfr_ips2330–2333– ungültige TSIG-Konfiguration (insgesamt, Name, Algorithmus, Schlüssel)3222– Öffnen der Domain fehlgeschlagen3223– Autorisierungsfehler3304– Aktualisieren des Domain-Eintrags fehlgeschlagen3305– die Domain ist gesperrt3306– die Domain ist gelöscht5001– 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) – Domainnamerow_id– erforderlich, Integer (Pfad) – ID des DNS-Eintragsttl– erforderlich, Integer (Request-Body) – neuer TTL-Wert in Sekundenrdata– erforderlich, String (Request-Body) – neue Daten des Eintragsauthor_comment– optional, String (Request-Body) – Kommentar des Autors; erlaubt sind nur Buchstaben ohne diakritische Zeichen, Ziffern und Leerzeichen; ältere Clients senden möglicherweiseauth_commentstattdessen
Rückgabecodes:
1000– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger Domainname2298– Parameterauthor_commententhält ungültige Zeichen2314– ungültige Daten des Eintrags2316– dieser Eintrag existiert bereits2317– ungültige TTL2318– die Operation kann bei einer Secondary-Domain nicht ausgeführt werden3222– Öffnen der Domain fehlgeschlagen3223– Autorisierungsfehler3305– die Domain ist gesperrt3306– die Domain ist gelöscht3309– ein Eintrag mit dieser ID existiert nicht3310– Ändern des Eintrags fehlgeschlagen5001– 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– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger oder nicht unterstützter Domainname3222– Öffnen der Domain fehlgeschlagen3223– Zugriff verweigert3301– Entfernen des Domain-Eintrags fehlgeschlagen3305– die Domain ist gesperrt3306– die Domain ist bereits gelöscht5001– 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) – Domainnamerow_id– erforderlich, Integer (Pfad) – ID des DNS-Eintrags
Rückgabecodes:
1000– OK2100– erforderlicher Parameter fehlt2101– ungültiger Eingabeparameter2201– nicht unterstützte TLD2202– ungültiger oder nicht unterstützter Domainname2318– die Operation kann bei einer Secondary-Domain nicht ausgeführt werden3222– Öffnen der Domain fehlgeschlagen3223– Zugriff verweigert3305– die Domain ist gesperrt3306– die Domain ist gelöscht3308– Löschen des Eintrags fehlgeschlagen3309– ein Eintrag mit dieser ID existiert nicht5001– 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=1definiert) und6000(interner Initialisierungsfehler der WAPI-Schicht). Fehlt bei den Methoden PATCH/DELETE das Segment{domain}in der URL, so wird der Fehler6001zurückgegeben (erforderlicher Parameterdomainfehlt). - Eine nicht erkannte Kombination von URL-Segmenten (z. B.
/domains/{domain}/rowsohne{row_id}bei PATCH/DELETE) liefert immer den Fehler4000. Es erfolgt nie ein stillschweigender Rückfall auf eine andere Operation (z. B. auf die Ebene der gesamten Domain). - Die REST-Schicht akzeptiert
axfr_ipsentweder 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_ipundprimary_tsig_*wirken sich nur bei Domains vom Typsecondary. template_idgilt beim Anlegen einer Domain (POST /domains/add) nur für eine Primary-Domain (type=primaryoder nicht angegeben). Bei einer Secondary-Domain liefert er den Fehler2324.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_typezu 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ährendtextdie Einträge nach der Validierung direkt in die Domain schreibt. Der typische Ablauf ist daher: zuerstimport_type=axfraufrufen, den zurückgegebenen Text prüfen und ihn erst danach erneut senden – alsimport_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 Parameterauth_commentmit derselben Bedeutung verwenden.- Die Felder
nameundtypeeines 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
3223zurückgegeben.
