REST API – DNS

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

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

MetodaEndpointOpis
GET/domainsLista domen zalogowanego użytkownika z wyszukiwaniem, filtrowaniem, sortowaniem i stronicowaniem
GET/domains/{domain}Szczegóły domeny
GET/domains/{domain}/axfr-tsigInformacje o kluczu AXFR TSIG domeny
GET/domains/{domain}/rowsLista rekordów DNS domeny
GET/domains/{domain}/rows/{row_id}Szczegóły jednego rekordu DNS
POST/domains/addUtworzenie nowej domeny
POST/domains/{domain}/commitZastosowanie oczekujących zmian domeny (commit)
POST/domains/{domain}/copyUtworzenie kopii domeny pod nową nazwą
POST/domains/{domain}/axfr-runNatychmiastowe uruchomienie transferu AXFR (domena secondary)
POST/domains/{domain}/axfr-tsigUtworzenie lub anulowanie klucza AXFR TSIG domeny
POST/domains/{domain}/rowsDodanie rekordu DNS do domeny
POST/domains/{domain}/zone-importImport 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 1
  • page_limit – opcjonalny, liczba całkowita – liczba rekordów na stronę, domyślnie 50
  • orderby – opcjonalny, ciąg znaków – sortowanie w postaci column [ASC|DESC]; obsługiwane kolumny to domain i created_date; domyślnie domain ASC. Nieprawidłowa kolumna jest po cichu ignorowana i stosowane jest sortowanie domyślne.

Kody zwrotne:

  • 1000 – OK
  • 5001 – wewnętrzny błąd logowania

Dane odpowiedzi:

  • domain – tablica domen; każdy element zawiera name, status, type
  • total – łączna liczba domen odpowiadających filtrowi
  • page – bieżąca strona
  • page_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 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 3222 – nie udało się otworzyć domeny (np. nie istnieje)
  • 3223 – błąd autoryzacji (domena należy do innego użytkownika)
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 5001 – 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 – OK
  • 2334 – AXFR TSIG nie jest ustawiony dla domeny
  • 2337 – nieprawidłowe polecenie AXFR TSIG
  • 2340 – 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 domeny
  • axfr_tsig_action – wykonana akcja, zawsze info
  • axfr_tsig_name – nazwa klucza TSIG
  • axfr_tsig_alg – algorytm klucza TSIG
  • axfr_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 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 2318 – operacji nie można wykonać na domenie secondary
  • 3222 – nie udało się otworzyć domeny
  • 3223 – błąd autoryzacji
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 5001 – wewnętrzny błąd logowania

Dane odpowiedzi:

  • row – tablica rekordów DNS, każdy z kluczami 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'
{
  "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 domeny
  • row_id – wymagany, liczba całkowita (path) – ID rekordu DNS

Kody zwrotne:

  • 1000 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 2318 – operacji nie można wykonać na domenie secondary
  • 3222 – nie udało się otworzyć domeny
  • 3223 – błąd autoryzacji
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 3309 – rekord o tym ID nie istnieje
  • 5001 – 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 domeny
  • type – opcjonalny, ciąg znaków – primary lub secondary, domyślnie primary
  • axfr_enabled – opcjonalny, boolean (0/1) – dozwolony wychodzący AXFR, domyślnie 0
  • axfr_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śli axfr_enabled=1
  • primary_ip – opcjonalny (wymagany dla type=secondary), ciąg znaków – adres IPv4 serwera primary, z którego przenoszone są rekordy
  • primary_tsig_enabled – opcjonalny, boolean – wymaga uwierzytelnienia TSIG przychodzącego AXFR (tylko dla type=secondary)
  • primary_tsig_name – opcjonalny (wymagany, jeśli primary_tsig_enabled=1), ciąg znaków – nazwa klucza TSIG
  • primary_tsig_alg – opcjonalny (wymagany, jeśli primary_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-sha512
  • primary_tsig_key – opcjonalny (wymagany, jeśli primary_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 tylko type=primary

Kody zwrotne:

  • 1000 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 2301 – nieprawidłowy format parametru type
  • 2302 – parametr primary_ip nie został podany
  • 2303 – nieprawidłowy format parametru primary_ip
  • 2304 – nieprawidłowy format parametru axfr_enabled
  • 2305 – wymagany parametr axfr_ips nie został podany
  • 2306 – nieprawidłowy format parametru axfr_ips
  • 2322 – przekroczono limit domen WDNS dla tego konta
  • 2323 – nie znaleziono szablonu
  • 2324 – szablonu można użyć tylko do utworzenia domeny primary
  • 2325 – nie zdefiniowano żadnego szablonu
  • 2330–2333 – nieprawidłowa konfiguracja TSIG (ogólnie, nazwa, algorytm, klucz)
  • 2355 – adres IP AXFR nie jest prawidłowy
  • 2366 – axfr_ips ciąg znaków jest dłuższy niż 255 znaków
  • 2367 – nie podano żadnego adresu IP dla wychodzącego AXFR
  • 3302 – dodanie domeny do WDNS nie powiodło się
  • 3303 – domena już istnieje w WDNS
  • 5001 – wewnętrzny błąd autoryzacji

Dane odpowiedzi:

  • domain_id – wewnętrzne ID nowo utworzonej domeny
  • name – 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 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 3222 – nie udało się otworzyć domeny
  • 3223 – błąd autoryzacji
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 5001 – 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łowej
  • name_new – wymagany, ciąg znaków (treść żądania) – nazwa nowej domeny

Kody zwrotne:

  • 1000 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 2320 – nieprawidłowa lub nieobsługiwana nazwa nowej domeny
  • 2321 – nieobsługiwana TLD nowej nazwy domeny
  • 2322 – przekroczono limit rekordów DNS na użytkownika
  • 3222 – nie udało się otworzyć domeny
  • 3223 – błąd autoryzacji
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 3311 – kopiowanie nie powiodło się
  • 3312 – domena o tej nazwie już istnieje
  • 5001 – 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 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 2319 – można wykonać tylko na domenie secondary
  • 3222 – nie udało się otworzyć domeny
  • 3223 – błąd autoryzacji
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 5001 – 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 domeny
  • action – opcjonalny, ciąg znaków (treść żądania) – create (utworzenie/aktualizacja) lub cancel, domyślnie create; wartość jest wewnętrznie mapowana na parametr WAPI axfr_tsig_action

Kody zwrotne:

  • 1000 – OK
  • 2335 – AXFR TSIG nie został utworzony dla domeny
  • 2336 – AXFR TSIG nie został anulowany dla domeny
  • 2337 – nieprawidłowe polecenie AXFR TSIG
  • 2340 – 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 domeny
  • axfr_tsig_action – wykonana akcja (create/cancel)
  • axfr_tsig_name – nazwa klucza TSIG (tylko dla create)
  • axfr_tsig_alg – algorytm klucza TSIG (tylko dla create)
  • axfr_tsig_key – wartość klucza TSIG, base64 (tylko dla create)

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 domeny
  • name – 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ść niezerowa
  • type – 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, TXT
  • rdata – 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 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 2298 – parametr author_comment zawiera nieprawidłowe znaki
  • 2309 – nieprawidłowy typ rekordu
  • 2310 – nie można dodać kolejnego rekordu do domeny (osiągnięto limit rekordów)
  • 2311 – nieprawidłowa nazwa rekordu
  • 2312 – nieprawidłowa nazwa dla danego typu rekordu
  • 2313 – nieprawidłowy CNAME dla tej nazwy
  • 2314 – nieprawidłowe dane rekordu
  • 2315 – nieprawidłowa TLD
  • 2316 – taki rekord już istnieje
  • 2317 – nieprawidłowa TTL
  • 2318 – operacji nie można wykonać na domenie secondary
  • 3222 – nie udało się otworzyć domeny
  • 3223 – błąd autoryzacji
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 3307 – dodanie rekordu domeny nie powiodło się
  • 5001 – wewnętrzny błąd autoryzacji

Dane odpowiedzi:

  • domain – nazwa domeny
  • row_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 z import_type=text.
  • text – rekordy przekazane w formacie BIND w parametrze rows są weryfikowane i importowane bezpośrednio do domeny.

Import jest możliwy tylko dla domeny primary.

Parametry:

  • domain – wymagany, ciąg znaków (path) – nazwa domeny
  • import_type – wymagany, ciąg znaków (treść żądania) – axfr lub text
  • axfr_ip – wymagany dla import_type=axfr, ciąg znaków (treść żądania) – adres IPv4 serwera DNS, z którego rekordy zostaną pobrane przez AXFR
  • rows – wymagany dla import_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 – OK
  • 2338 – brak uprawnień do edycji tej domeny
  • 2350 – nieprawidłowa wartość typu importu
  • 2351 – brak listy rekordów DNS (rows nie został podany przy import_type=text)
  • 2352 – z podanego IP nie udało się uzyskać żadnych danych do importu
  • 2353 – importowana lista DNS zawiera nieprawidłowy rekord; import nie został wykonany
  • 2354 – brak adresu IP AXFR
  • 2355 – adres IP AXFR nie jest prawidłowy
  • 2357 – z tekstu nie udało się uzyskać żadnych danych do importu
  • 2358 – nie można zaimportować 2 identycznych rekordów (nazwa, typ, dane)
  • 2359 – przekroczono maksymalną liczbę rekordów
  • 2360 – rekordu CNAME nie można zaimportować, jeśli dla jego nazwy istnieje jakikolwiek inny rekord
  • 2363 – rekordy tego samego typu muszą mieć tę samą TTL
  • 2364 – rekordy DNS nie zostały zaimportowane (wewnętrzny błąd importu)
  • 2365 – adres IP AXFR musi być w formacie IPv4
  • 2368 – 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 z import_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 domeny
  • axfr_enabled – opcjonalny, boolean (0/1) – dozwolony wychodzący AXFR
  • axfr_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 ustawieniu axfr_enabled=1
  • primary_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 TSIG
  • primary_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 – OK
  • 2007 – przekroczono maksymalny rozmiar żądania
  • 2100 – brak parametru wejściowego
  • 2101 – nieprawidłowe parametry wejściowe
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa lub nieobsługiwana nazwa domeny
  • 2303 – nieprawidłowy format parametru primary_ip
  • 2304 – nieprawidłowy format parametru axfr_enabled
  • 2305 – wymagany parametr axfr_ips nie został podany
  • 2306 – nieprawidłowy format parametru axfr_ips
  • 2330–2333 – nieprawidłowa konfiguracja TSIG (ogólnie, nazwa, algorytm, klucz)
  • 3222 – nie udało się otworzyć domeny
  • 3223 – błąd autoryzacji
  • 3304 – aktualizacja rekordu domeny nie powiodła się
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 5001 – 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 domeny
  • row_id – wymagany, liczba całkowita (path) – ID rekordu DNS
  • ttl – wymagany, liczba całkowita (treść żądania) – nowa wartość TTL w sekundach
  • rdata – wymagany, ciąg znaków (treść żądania) – nowe dane 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 .

Kody zwrotne:

  • 1000 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa nazwa domeny
  • 2298 – parametr author_comment zawiera nieprawidłowe znaki
  • 2314 – nieprawidłowe dane rekordu
  • 2316 – taki rekord już istnieje
  • 2317 – nieprawidłowa TTL
  • 2318 – operacji nie można wykonać na domenie secondary
  • 3222 – nie udało się otworzyć domeny
  • 3223 – błąd autoryzacji
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 3309 – rekord o tym ID nie istnieje
  • 3310 – 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 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa lub nieobsługiwana nazwa domeny
  • 3222 – nie udało się otworzyć domeny
  • 3223 – odmowa dostępu
  • 3301 – usunięcie rekordu domeny nie powiodło się
  • 3305 – domena jest zablokowana
  • 3306 – domena jest już usunięta
  • 5001 – 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 domeny
  • row_id – wymagany, liczba całkowita (path) – ID rekordu DNS

Kody zwrotne:

  • 1000 – OK
  • 2100 – brak wymaganego parametru
  • 2101 – nieprawidłowy parametr wejściowy
  • 2201 – nieobsługiwana TLD
  • 2202 – nieprawidłowa lub nieobsługiwana nazwa domeny
  • 2318 – operacji nie można wykonać na domenie secondary
  • 3222 – nie udało się otworzyć domeny
  • 3223 – odmowa dostępu
  • 3305 – domena jest zablokowana
  • 3306 – domena jest usunięta
  • 3308 – usunięcie rekordu nie powiodło się
  • 3309 – rekord o tym ID nie istnieje
  • 5001 – 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=1 nie jest zdefiniowany żaden przykład) oraz 6000 (wewnętrzny błąd inicjalizacji warstwy WAPI). W metodach PATCH/DELETE, jeśli brakuje segmentu {domain} w URL, zwracany jest błąd 6001 (brak wymaganego parametru domain ).
  • Nierozpoznana kombinacja segmentów URL (np. /domains/{domain}/rows bez {row_id} w metodach PATCH/DELETE) zawsze zwraca 4000. Nigdy nie przechodzi po cichu do innej operacji (np. na poziom całej domeny).
  • Warstwa REST przyjmuje parametr axfr_ips albo 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_ip i primary_tsig_* działają tylko dla domen typu secondary.
  • template_id przy tworzeniu domeny (POST /domains/add) ma zastosowanie tylko do domeny primary (type=primary lub nie podano). Dla domeny secondary zwracany jest błąd 2324.
  • 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 : axfr tylko pobiera rekordy i zwraca je jako tekst do ręcznej kontroli (nic nie jest importowane), natomiast text zapisuje rekordy do domeny bezpośrednio po walidacji. Typowy sposób postępowania to zatem najpierw wywołanie import_type=axfr , sprawdzenie zwróconego tekstu i dopiero potem wysłanie go jako import_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ć parametru auth_comment o tym samym znaczeniu.
  • Pól name i type rekordu 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 .

Czy to było pomocne?

Dziękujemy za opinię!
Selektory ogólne
Tylko dokładne dopasowania
Szukaj w tytule
Szukaj w treści
Selektory typów wpisów