WEDOS REST API jest wciąż w fazie rozwoju. Dostęp i funkcje mogą ulec zmianie bez wcześniejszego powiadomienia.
Ten artykuł opisuje endpoint DNS w WEDOS REST API. Informacje o WEDOS API (WAPI) zawiera artykuł WAPI – WEDOS DNS.
Podstawowe informacje o WEDOS REST API zawiera artykuł Podręcznik WEDOS REST API.
W tym artykule znajdują się następujące informacje:
- Dostęp do endpointu DNS
- Szczegóły endpointu DNS:
- 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}
- Uwagi
Dostęp do endpointu DNS
WDNS HTTP REST API v2 służy do zarządzania domenami DNS i ich rekordami DNS w usłudze WEDOS DNS (WDNS). API jest zgodne z zasadami REST i komunikuje się przez JSON.
Podstawowy adres URL i uwierzytelnianie
Podstawowy adres URL endpointów DNS to: https://api.wedos.com/v2/dns
Do uwierzytelnienia służy wyłącznie token OAuth2 Bearer wysyłany w nagłówku Authorization: Bearer <TOKEN>. Token musi mieć scope wdns . Bez ważnego tokenu lub z tokenem bez wymaganego scope API zwraca błąd uwierzytelnienia.
Każdy endpoint obsługuje tryb ?example=1 (lub &example=1 jeśli URL zawiera już inne parametry zapytania). Zwraca przykładowe wywołanie (polecenie curl) dla tego endpointu, bez konieczności podawania prawdziwych parametrów. Również w tym trybie wymagany jest prawidłowy token Bearer.
Przegląd endpointów
| Metoda | Endpoint | Opis |
|---|---|---|
| GET | /domains | Lista domen zalogowanego użytkownika z wyszukiwaniem, filtrowaniem, sortowaniem i stronicowaniem |
| GET | /domains/{domain} | Szczegóły domeny |
| GET | /domains/{domain}/axfr-tsig | Informacje o kluczu AXFR TSIG domeny |
| GET | /domains/{domain}/rows | Lista rekordów DNS domeny |
| GET | /domains/{domain}/rows/{row_id} | Szczegóły jednego rekordu DNS |
| POST | /domains/add | Utworzenie nowej domeny |
| POST | /domains/{domain}/commit | Zastosowanie oczekujących zmian domeny (commit) |
| POST | /domains/{domain}/copy | Utworzenie kopii domeny pod nową nazwą |
| POST | /domains/{domain}/axfr-run | Natychmiastowe uruchomienie transferu AXFR (domena secondary) |
| POST | /domains/{domain}/axfr-tsig | Utworzenie lub anulowanie klucza AXFR TSIG domeny |
| POST | /domains/{domain}/rows | Dodanie rekordu DNS do domeny |
| POST | /domains/{domain}/zone-import | Import rekordów DNS domeny (przez AXFR lub przez wklejenie tekstu w formacie BIND) |
| PATCH | /domains/{domain} | Zmiana ustawień domeny |
| PATCH | /domains/{domain}/rows/{row_id} | Zmiana istniejącego rekordu DNS |
| DELETE | /domains/{domain} | Usunięcie domeny |
| DELETE | /domains/{domain}/rows/{row_id} | Usunięcie rekordu DNS |
Format odpowiedzi
Wszystkie odpowiedzi – udane i błędne – mają ten sam kształt obiektu JSON z następującymi kluczami: code (kod zwrotny), msg (tekstowy opis kodu), request_id (identyfikator żądania) oraz opcjonalnie data (dane odpowiedzi, tylko jeśli operacja je zwraca).
GET /domains
Zwraca listę domen zalogowanego użytkownika z obsługą wyszukiwania, filtrowania, sortowania i stronicowania.
Parametry:
search– opcjonalny, ciąg znaków – wyszukiwanie w nazwie domeny (obsługuje IDN)status– opcjonalny, ciąg znaków – filtr według stanu domeny (np.active,disabled,deleted)type– opcjonalny, ciąg znaków – filtr według typu domeny (primary,secondary)page– opcjonalny, liczba całkowita – numer strony, domyślnie 1page_limit– opcjonalny, liczba całkowita – liczba rekordów na stronę, domyślnie 50orderby– opcjonalny, ciąg znaków – sortowanie w postacicolumn [ASC|DESC]; obsługiwane kolumny todomainicreated_date; domyślniedomain ASC. Nieprawidłowa kolumna jest po cichu ignorowana i stosowane jest sortowanie domyślne.
Kody zwrotne:
1000– OK5001– wewnętrzny błąd logowania
Dane odpowiedzi:
domain– tablica domen; każdy element zawieraname,status,typetotal– łączna liczba domen odpowiadających filtrowipage– bieżąca stronapage_limit– liczba rekordów na stronę
Przykład:
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}
Zwraca szczegółowe informacje o domenie.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domeny
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny3222– nie udało się otworzyć domeny (np. nie istnieje)3223– błąd autoryzacji (domena należy do innego użytkownika)3305– domena jest zablokowana3306– domena jest usunięta5001– wewnętrzny błąd logowania
Dane odpowiedzi:
domain– obiekt ze szczegółami domeny: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
Przykład:
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
Zwraca informacje o kluczu AXFR TSIG domeny (służy do uwierzytelniania transferów DNS AXFR/IXFR). Jeśli TSIG nie jest ustawiony dla domeny, endpoint zwraca błąd 2334.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domeny
Kody zwrotne:
1000– OK2334– AXFR TSIG nie jest ustawiony dla domeny2337– nieprawidłowe polecenie AXFR TSIG2340– przekroczono maksymalną liczbę domen w jednej akcji zbiorczej- pozostałe kody błędów związane z otwarciem domeny – patrz GET /domains/{domain} (np.
3222,3223,3305,3306)
Dane odpowiedzi:
name– nazwa domenyaxfr_tsig_action– wykonana akcja, zawszeinfoaxfr_tsig_name– nazwa klucza TSIGaxfr_tsig_alg– algorytm klucza TSIGaxfr_tsig_key– wartość klucza TSIG (base64)
Przykład:
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
Zwraca listę rekordów DNS domeny. Tej operacji nie można wykonać dla domen secondary (ich rekordami zarządza serwer primary).
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domeny
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny2318– operacji nie można wykonać na domenie secondary3222– nie udało się otworzyć domeny3223– błąd autoryzacji3305– domena jest zablokowana3306– domena jest usunięta5001– wewnętrzny błąd logowania
Dane odpowiedzi:
row– tablica rekordów DNS, każdy z kluczamiID,name,ttl,rdtype,rdata,changed_date,author_comment
Przykład:
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}
Zwraca szczegóły jednego rekordu DNS domeny.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domenyrow_id– wymagany, liczba całkowita (path) – ID rekordu DNS
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny2318– operacji nie można wykonać na domenie secondary3222– nie udało się otworzyć domeny3223– błąd autoryzacji3305– domena jest zablokowana3306– domena jest usunięta3309– rekord o tym ID nie istnieje5001– wewnętrzny błąd logowania
Dane odpowiedzi:
row– obiekt ze szczegółami rekordu:ID,name,ttl,rdtype,rdata,changed_date,author_comment
Przykład:
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
Tworzy nową domenę w WDNS, albo jako domenę primary (rekordami DNS zarządza WEDOS), albo jako domenę secondary (rekordy są przenoszone przez AXFR z zewnętrznego serwera primary).
Parametry:
name– wymagany, ciąg znaków – nazwa domenytype– opcjonalny, ciąg znaków –primarylubsecondary, domyślnieprimaryaxfr_enabled– opcjonalny, boolean (0/1) – dozwolony wychodzący AXFR, domyślnie 0axfr_ips– opcjonalny, ciąg znaków lub tablica ciągów – adresy IP dozwolone dla wychodzącego AXFR (ciąg adresów oddzielonych spacjami albo tablica JSON adresów); wymagany, jeśliaxfr_enabled=1primary_ip– opcjonalny (wymagany dlatype=secondary), ciąg znaków – adres IPv4 serwera primary, z którego przenoszone są rekordyprimary_tsig_enabled– opcjonalny, boolean – wymaga uwierzytelnienia TSIG przychodzącego AXFR (tylko dlatype=secondary)primary_tsig_name– opcjonalny (wymagany, jeśliprimary_tsig_enabled=1), ciąg znaków – nazwa klucza TSIGprimary_tsig_alg– opcjonalny (wymagany, jeśliprimary_tsig_enabled=1), ciąg znaków – algorytm klucza TSIG; obsługiwane wartości:hmac-md5,hmac-sha1,hmac-sha224,hmac-sha256,hmac-sha384,hmac-sha512primary_tsig_key– opcjonalny (wymagany, jeśliprimary_tsig_enabled=1), ciąg znaków – wartość klucza TSIG zakodowana w base64 (minimalna długość zdekodowanego klucza 8 bajtów)template_id– opcjonalny, liczba całkowita – ID szablonu użytego do utworzenia domeny; dotyczy tylkotype=primary
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny2301– nieprawidłowy format parametrutype2302– parametrprimary_ipnie został podany2303– nieprawidłowy format parametruprimary_ip2304– nieprawidłowy format parametruaxfr_enabled2305– wymagany parametraxfr_ipsnie został podany2306– nieprawidłowy format parametruaxfr_ips2322– przekroczono limit domen WDNS dla tego konta2323– nie znaleziono szablonu2324– szablonu można użyć tylko do utworzenia domeny primary2325– nie zdefiniowano żadnego szablonu2330–2333– nieprawidłowa konfiguracja TSIG (ogólnie, nazwa, algorytm, klucz)2355– adres IP AXFR nie jest prawidłowy2366–axfr_ipsciąg znaków jest dłuższy niż 255 znaków2367– nie podano żadnego adresu IP dla wychodzącego AXFR3302– dodanie domeny do WDNS nie powiodło się3303– domena już istnieje w WDNS5001– wewnętrzny błąd autoryzacji
Dane odpowiedzi:
domain_id– wewnętrzne ID nowo utworzonej domenyname– nazwa domeny
Przykład:
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"}'
Treść żądania:
{
"name": "domain1.tld",
"type": "primary"
}
Odpowiedź:
{
"code": 1000,
"msg": "OK",
"request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b75",
"data": {
"domain_id": 48213,
"name": "domain1.tld"
}
}
POST /domains/{domain}/commit
Stosuje oczekujące zmiany domeny (commit) i rozsyła je na produkcyjne serwery DNS.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domeny
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny3222– nie udało się otworzyć domeny3223– błąd autoryzacji3305– domena jest zablokowana3306– domena jest usunięta5001– wewnętrzny błąd autoryzacji
Dane odpowiedzi: Endpoint nie zwraca żadnych danych; powodzenie sygnalizuje kod 1000.
Przykład:
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
Tworzy kopię istniejącej domeny (wraz z jej rekordami DNS) pod nową nazwą.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domeny źródłowejname_new– wymagany, ciąg znaków (treść żądania) – nazwa nowej domeny
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny2320– nieprawidłowa lub nieobsługiwana nazwa nowej domeny2321– nieobsługiwana TLD nowej nazwy domeny2322– przekroczono limit rekordów DNS na użytkownika3222– nie udało się otworzyć domeny3223– błąd autoryzacji3305– domena jest zablokowana3306– domena jest usunięta3311– kopiowanie nie powiodło się3312– domena o tej nazwie już istnieje5001– wewnętrzny błąd autoryzacji
Dane odpowiedzi: Endpoint nie zwraca żadnych danych; powodzenie sygnalizuje kod 1000.
Przykład:
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"}'
Treść żądania:
{
"name_new": "domain2.tld"
}
Odpowiedź:
{
"code": 1000,
"msg": "OK",
"request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b77"
}
POST /domains/{domain}/axfr-run
Natychmiast uruchamia transfer AXFR rekordów DNS dla domeny secondary (poza regularnym harmonogramem).
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domeny
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny2319– można wykonać tylko na domenie secondary3222– nie udało się otworzyć domeny3223– błąd autoryzacji3305– domena jest zablokowana3306– domena jest usunięta5001– wewnętrzny błąd autoryzacji
Dane odpowiedzi:
next_run– czas następnej zaplanowanej aktualizacji
Przykład:
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
Tworzy lub anuluje klucz AXFR TSIG domeny (uwierzytelnianie wychodzących transferów AXFR/IXFR).
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domenyaction– opcjonalny, ciąg znaków (treść żądania) –create(utworzenie/aktualizacja) lubcancel, domyślniecreate; wartość jest wewnętrznie mapowana na parametr WAPIaxfr_tsig_action
Kody zwrotne:
1000– OK2335– AXFR TSIG nie został utworzony dla domeny2336– AXFR TSIG nie został anulowany dla domeny2337– nieprawidłowe polecenie AXFR TSIG2340– przekroczono maksymalną liczbę domen w jednej akcji zbiorczej- pozostałe kody błędów związane z otwarciem domeny – patrz GET /domains/{domain} (np.
3222,3223,3305,3306)
Dane odpowiedzi:
name– nazwa domenyaxfr_tsig_action– wykonana akcja (create/cancel)axfr_tsig_name– nazwa klucza TSIG (tylko dlacreate)axfr_tsig_alg– algorytm klucza TSIG (tylko dlacreate)axfr_tsig_key– wartość klucza TSIG, base64 (tylko dlacreate)
Przykład:
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"}'
Treść żądania:
{
"action": "create"
}
Odpowiedź:
{
"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
Dodaje do domeny nowy rekord DNS.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domenyname– wymagany, ciąg znaków (treść żądania) – nazwa rekordu; pusty ciąg oznacza rekord na poziomie samej domeny (apex)ttl– wymagany, liczba całkowita (treść żądania) – TTL rekordu w sekundach, wartość niezerowatype– wymagany, ciąg znaków (treść żądania) – typ rekordu; obsługiwane wartości:A,AAAA,ALIAS,CAA,CNAME,DNAME,HTTPS,MX,NAPTR,NS,SRV,SSHFP,TLSA,TXTrdata– wymagany, ciąg znaków (treść żądania) – dane rekordu (format zależy od typu rekordu)author_comment– opcjonalny, ciąg znaków (treść żądania) – komentarz autora; dozwolone są tylko litery bez znaków diakrytycznych, cyfry i spacje; starsze klienty mogą zamiast tego wysyłaćauth_comment(równoważny alias)
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny2298– parametrauthor_commentzawiera nieprawidłowe znaki2309– nieprawidłowy typ rekordu2310– nie można dodać kolejnego rekordu do domeny (osiągnięto limit rekordów)2311– nieprawidłowa nazwa rekordu2312– nieprawidłowa nazwa dla danego typu rekordu2313– nieprawidłowy CNAME dla tej nazwy2314– nieprawidłowe dane rekordu2315– nieprawidłowa TLD2316– taki rekord już istnieje2317– nieprawidłowa TTL2318– operacji nie można wykonać na domenie secondary3222– nie udało się otworzyć domeny3223– błąd autoryzacji3305– domena jest zablokowana3306– domena jest usunięta3307– dodanie rekordu domeny nie powiodło się5001– wewnętrzny błąd autoryzacji
Dane odpowiedzi:
domain– nazwa domenyrow_id– ID nowo utworzonego rekordu
Przykład:
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"}'
Treść żądania:
{
"name": "www",
"ttl": 1800,
"type": "A",
"rdata": "46.28.105.2"
}
Odpowiedź:
{
"code": 1000,
"msg": "OK",
"request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b80",
"data": {
"domain": "domain1.tld",
"row_id": 125
}
}
POST /domains/{domain}/zone-import
Importuje rekordy DNS domeny. Obsługiwane są dwa tryby (import_type):
axfr– endpoint próbuje pobrać rekordy przez AXFR z podanego adresu IP i zwraca je jako tekst w formacie BIND do ręcznej kontroli. To wywołanie nie importuje rekordów automatycznie. Aby je zaimportować, należy je skopiować i wysłać w osobnym wywołaniu zimport_type=text.text– rekordy przekazane w formacie BIND w parametrzerowssą weryfikowane i importowane bezpośrednio do domeny.
Import jest możliwy tylko dla domeny primary.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domenyimport_type– wymagany, ciąg znaków (treść żądania) –axfrlubtextaxfr_ip– wymagany dlaimport_type=axfr, ciąg znaków (treść żądania) – adres IPv4 serwera DNS, z którego rekordy zostaną pobrane przez AXFRrows– wymagany dlaimport_type=text, ciąg znaków (treść żądania) – rekordy DNS jako tekst w formacie BIND (nie tablica JSON, lecz jeden wielowierszowy ciąg znaków)
Kody zwrotne:
1000– OK2338– brak uprawnień do edycji tej domeny2350– nieprawidłowa wartość typu importu2351– brak listy rekordów DNS (rowsnie został podany przyimport_type=text)2352– z podanego IP nie udało się uzyskać żadnych danych do importu2353– importowana lista DNS zawiera nieprawidłowy rekord; import nie został wykonany2354– brak adresu IP AXFR2355– adres IP AXFR nie jest prawidłowy2357– z tekstu nie udało się uzyskać żadnych danych do importu2358– nie można zaimportować 2 identycznych rekordów (nazwa, typ, dane)2359– przekroczono maksymalną liczbę rekordów2360– rekordu CNAME nie można zaimportować, jeśli dla jego nazwy istnieje jakikolwiek inny rekord2363– rekordy tego samego typu muszą mieć tę samą TTL2364– rekordy DNS nie zostały zaimportowane (wewnętrzny błąd importu)2365– adres IP AXFR musi być w formacie IPv42368– import jest dozwolony tylko dla domeny primary
Dane odpowiedzi:
- Dla
import_type=axfr:name,import_type,axfr_ip,desc(notatka opisowa),rows(pobrane rekordy w formacie BIND, ograniczone znacznikami--- BEGIN ---/--- END ---, przeznaczone do skopiowania do kolejnego wywołania zimport_type=text) - Dla
import_type=text(udany import):name,import_type,source_rows(tekst wejściowy),imported_rows(rekordy faktycznie zaimportowane, w formacie BIND)
Przykład:
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"}'
Treść żądania:
{
"import_type": "text",
"rows": "www IN A 46.28.105.2\nmail IN A 46.28.105.3"
}
Odpowiedź:
{
"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}
Zmienia ustawienia istniejącej domeny (parametry AXFR i TSIG). Nazwy i typu domeny nie można zmienić tą operacją.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domenyaxfr_enabled– opcjonalny, boolean (0/1) – dozwolony wychodzący AXFRaxfr_ips– opcjonalny, ciąg znaków lub tablica ciągów – adresy IP dozwolone dla wychodzącego AXFR (ciąg adresów oddzielonych spacjami albo tablica JSON adresów); wymagany przy ustawieniuaxfr_enabled=1primary_ip– opcjonalny, ciąg znaków – adres IPv4 serwera primary (tylko domena secondary)primary_tsig_enabled– opcjonalny, boolean – wymaga uwierzytelnienia TSIG przychodzącego AXFR (tylko domena secondary)primary_tsig_name– opcjonalny, ciąg znaków – nazwa klucza TSIGprimary_tsig_alg– opcjonalny, ciąg znaków – algorytm klucza TSIG (hmac-md5,hmac-sha1,hmac-sha224,hmac-sha256,hmac-sha384,hmac-sha512)primary_tsig_key– opcjonalny, ciąg znaków – wartość klucza TSIG, base64
Kody zwrotne:
1000– OK2007– przekroczono maksymalny rozmiar żądania2100– brak parametru wejściowego2101– nieprawidłowe parametry wejściowe2201– nieobsługiwana TLD2202– nieprawidłowa lub nieobsługiwana nazwa domeny2303– nieprawidłowy format parametruprimary_ip2304– nieprawidłowy format parametruaxfr_enabled2305– wymagany parametraxfr_ipsnie został podany2306– nieprawidłowy format parametruaxfr_ips2330–2333– nieprawidłowa konfiguracja TSIG (ogólnie, nazwa, algorytm, klucz)3222– nie udało się otworzyć domeny3223– błąd autoryzacji3304– aktualizacja rekordu domeny nie powiodła się3305– domena jest zablokowana3306– domena jest usunięta5001– wewnętrzny błąd uwierzytelnienia
Dane odpowiedzi: Endpoint nie zwraca żadnych danych; powodzenie sygnalizuje kod 1000.
Przykład:
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"}'
Treść żądania:
{
"axfr_enabled": 1,
"axfr_ips": "46.28.105.2 46.28.105.3"
}
Odpowiedź:
{
"code": 1000,
"msg": "OK",
"request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b82"
}
PATCH /domains/{domain}/rows/{row_id}
Zmienia istniejący rekord DNS. Nazwy i typu rekordu nie można zmienić tą operacją; aby je zmienić, należy usunąć pierwotny rekord i dodać nowy.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domenyrow_id– wymagany, liczba całkowita (path) – ID rekordu DNSttl– wymagany, liczba całkowita (treść żądania) – nowa wartość TTL w sekundachrdata– wymagany, ciąg znaków (treść żądania) – nowe dane rekorduauthor_comment– opcjonalny, ciąg znaków (treść żądania) – komentarz autora; dozwolone są tylko litery bez znaków diakrytycznych, cyfry i spacje; starsze klienty mogą zamiast tego wysyłaćauth_comment.
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa nazwa domeny2298– parametrauthor_commentzawiera nieprawidłowe znaki2314– nieprawidłowe dane rekordu2316– taki rekord już istnieje2317– nieprawidłowa TTL2318– operacji nie można wykonać na domenie secondary3222– nie udało się otworzyć domeny3223– błąd autoryzacji3305– domena jest zablokowana3306– domena jest usunięta3309– rekord o tym ID nie istnieje3310– zmiana rekordu nie powiodła się5001– wewnętrzny błąd autoryzacji
Dane odpowiedzi: Endpoint nie zwraca żadnych danych; powodzenie sygnalizuje kod 1000.
Przykład:
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"}'
Treść żądania:
{
"ttl": 3600,
"rdata": "46.28.105.3"
}
Odpowiedź:
{
"code": 1000,
"msg": "OK",
"request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b83"
}
DELETE /domains/{domain}
Usuwa domenę z WDNS.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domeny
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa lub nieobsługiwana nazwa domeny3222– nie udało się otworzyć domeny3223– odmowa dostępu3301– usunięcie rekordu domeny nie powiodło się3305– domena jest zablokowana3306– domena jest już usunięta5001– wewnętrzny błąd autoryzacji
Dane odpowiedzi: Endpoint nie zwraca żadnych danych; powodzenie sygnalizuje kod 1000.
Przykład:
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}
Usuwa rekord DNS domeny.
Parametry:
domain– wymagany, ciąg znaków (path) – nazwa domenyrow_id– wymagany, liczba całkowita (path) – ID rekordu DNS
Kody zwrotne:
1000– OK2100– brak wymaganego parametru2101– nieprawidłowy parametr wejściowy2201– nieobsługiwana TLD2202– nieprawidłowa lub nieobsługiwana nazwa domeny2318– operacji nie można wykonać na domenie secondary3222– nie udało się otworzyć domeny3223– odmowa dostępu3305– domena jest zablokowana3306– domena jest usunięta3308– usunięcie rekordu nie powiodło się3309– rekord o tym ID nie istnieje5001– wewnętrzny błąd autoryzacji
Dane odpowiedzi: Endpoint nie zwraca żadnych danych; powodzenie sygnalizuje kod 1000.
Przykład:
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"
}
Uwagi
- Oprócz kodów błędów wymienionych przy poszczególnych endpointach mogą wystąpić ogólne błędy warstwy REST, wspólne dla wszystkich endpointów:
2000(brak lub nieprawidłowy token OAuth2 Bearer),2004(przekroczono maksymalny rozmiar żądania – URL/query string lub treść żądania),4000(nieznana/nieobsługiwana kombinacja ścieżki URL i metody HTTP),4001(walidacja danych wejściowych nie powiodła się),4005(dla tego endpointu w trybie?example=1nie jest zdefiniowany żaden przykład) oraz6000(wewnętrzny błąd inicjalizacji warstwy WAPI). W metodach PATCH/DELETE, jeśli brakuje segmentu{domain}w URL, zwracany jest błąd6001(brak wymaganego parametrudomain). - Nierozpoznana kombinacja segmentów URL (np.
/domains/{domain}/rowsbez{row_id}w metodach PATCH/DELETE) zawsze zwraca4000. Nigdy nie przechodzi po cichu do innej operacji (np. na poziom całej domeny). - Warstwa REST przyjmuje parametr
axfr_ipsalbo jako ciąg adresów IP oddzielonych spacjami, albo jako tablicę JSON adresów. Przed wywołaniem bazowego polecenia WAPI normalizuje oba warianty do formatu wewnętrznego. Pusty ciąg jest traktowany jako brak wartości. - Parametry
primary_ipiprimary_tsig_*działają tylko dla domen typusecondary. template_idprzy tworzeniu domeny (POST /domains/add) ma zastosowanie tylko do domeny primary (type=primarylub nie podano). Dla domeny secondary zwracany jest błąd2324.rr_limit(maksymalna liczba rekordów DNS dla domeny) nie jest obsługiwanym parametrem POST /domains/add. Endpoint go nie przyjmuje; limit wynika z konta/szablonu.- W przypadku POST /domains/{domain}/zone-import ważne jest rozróżnienie dwóch trybów parametru
import_type:axfrtylko pobiera rekordy i zwraca je jako tekst do ręcznej kontroli (nic nie jest importowane), natomiasttextzapisuje rekordy do domeny bezpośrednio po walidacji. Typowy sposób postępowania to zatem najpierw wywołanieimport_type=axfr, sprawdzenie zwróconego tekstu i dopiero potem wysłanie go jakoimport_type=text. author_comment(przy dodawaniu/zmianie rekordu DNS) dopuszcza tylko litery bez znaków diakrytycznych, cyfry i spacje. Starsze klienty mogą zamiast niego użyć parametruauth_commento tym samym znaczeniu.- Pól
nameityperekordu DNS nie można zmienić przez PATCH /domains/{domain}/rows/{row_id}. Aby je zmienić, należy usunąć rekord i dodać go ponownie. - Własność domeny jest weryfikowana w ramach każdej operacji na podstawie zalogowanego użytkownika (identyfikowanego z tokenu OAuth2). Jeśli domena należy do innego użytkownika, zwracany jest błąd
3223.
