Úvod / API
Vývojáři

API monitoringu

Aplikační rozhraní (API), které uživatelům pomáhá získávat informace o jejich účtu, kontrolách a jejich aktuálním stavu. Náš monitorovací systém můžete propojit s vlastní aplikací nebo automaticky zpracovávat nové události u sledovaných domén a služeb.

Protokol
HTTPS
Metoda
GET
Formát
JSON (UTF-8)
Základní URL
https://api.wedos.online/mon/
Limit
1000 / hodinu na IP i uživatele

Aktivace API

Přístup do API lze aktivovat ve WEDOS administraci, kam se dostanete přes client.wedos.com v detailu konkrétní domény, u které máte tuto doplňkovou službu aktivovanou.

V administraci zvolte sekci Nastavení -> Nastavení API. Aktivací se vygeneruje API klíč (podobný heslu), který následně použijete pro autentizaci v API komunikaci.

Bezpečnostní poznámka: k přístupovým údajům k API se chovejte jako k heslu. Nezveřejňujte je ani je veřejně nesdílejte.

Základní informace

Komunikace s API probíhá přes HTTPS metodou GET. Některé metody přijímají parametry v URL (GET parametry). Všechny metody vrací odpověď jako JSON objekt a všechna data jsou v kódování UTF-8.

Každá odpověď nese položku requestId, která jednoznačně identifikuje požadavek. Podle tohoto identifikátoru dohledáme konkrétní komunikaci v našem logu, pokud nastane problém nebo dotaz.

API se nachází na adrese https://api.wedos.online/mon/ následované názvem konkrétní metody. Autentizace používá dvě HTTP hlavičky posílané s každým požadavkem:

HlavičkaHodnota
X-Auth-IdID vašeho API klíče
X-Auth-Keyváš API klíč

API má následující limity:

  • max. 1000 požadavků za hodinu z jedné IP adresy
  • max. 1000 požadavků za hodinu od jednoho uživatele

Ahoj světe

Toto je základní volání metody zvané ping, která jednoduše ověří, že spojení a autentizace fungují.

GET https://api.wedos.online/mon/ping

Požadavek

GET /mon/ping HTTP/1.1
Host: api.wedos.online
Accept: application/json
X-Auth-Id: MY_API_KEY_ID
X-Auth-Key: MY_API_KEY

Odpověď

{
    "stamp": 1613393366,
    "time": "2021-02-15 13:49:26",
    "userId": 1000,
    "requestId": "3bb52d4d22.1613393366.2811.82063"
}

Při chybě vrátí HTTP server stavový kód jiný než 200 a tělo odpovědi upřesní chybu: kód chyby a její popis. Příklad:

{
    "error": {
        "code": "C507",
        "error": "Authentication failed"
    },
    "requestId": "1495544185.1615.8422"
}

Seznamy, filtrování, stránkování

Některé API metody vrací seznam položek (například kontroly). Tyto metody mají společné funkce, vstupní parametry i výstupní data. Výsledek vždy obsahuje následující položky:

PoložkaVýznam
resultspole objektů s jednotlivými položkami seznamu
pagečíslo stránky (viz stránkování níže)
countpočet vrácených položek
filteredCountpočet všech položek odpovídajících aktuálnímu filtru
totalCountpočet všech položek

Příklad odpovědi (jednotlivé položky jsou zde vynechány):

{
    "results": [
        ...
    ],
    "page": 1,
    "count": 10,
    "filteredCount": 18,
    "totalCount": 624,
    "requestId": "..."
}

Tato odpověď znamená, že pro aktuálního uživatele existuje celkem 624 položek (například kontrol), z toho 18 odpovídá aktivnímu filtru (filtrům) a vráceno bylo prvních 10 položek (první stránka, stránkování po 10 položkách).

V požadavku na seznam lze předat jeden nebo více filtrů jako GET parametry; vráceny jsou jen odpovídající položky. Položky seznamu lze stránkovat, tedy vracet jen v určitých rozsazích. API umožňuje maximálně 1000 položek na jedno volání a výchozí stránkování je 100 položek.

Následující GET parametry řídí stránkování a počet vracených položek:

ParametrVýznam
pagečíslo stránky (výchozí 1)
countpočet vracených položek, tj. velikost stránky (výchozí 100)

Příklad výpisu 10 položek na druhé stránce (položky 11 až 20):

GET https://api.wedos.online/mon/checks?page=2&count=10

Seznam kontrol

Metoda zvaná checks načte seznam monitorovaných služeb ve vašem účtu.

GET https://api.wedos.online/mon/checks

Příklad odpovědi

{
    "results": [
        {
            "ID": 5151,
            "name": "seznam.cz DNSSEC",
            "type": "dnssec",
            "period": 600,
            "fullTarget": "seznam.cz",
            "status": "ok",
            "statusStamp": 1612886736,
            "statusDate": "2021-02-09 16:05:36",
            "createdStamp": 1612886708,
            "createdDate": "2021-02-09 16:05:08",
            "uptime_1d": 100,
            "errorSeconds_1d": 0,
            "avgTime_1d": 0,
            "uptime_7d": 100,
            "errorSeconds_7d": 0,
            "avgTime_7d": 0,
            "uptime_30d": 100,
            "errorSeconds_30d": 0,
            "avgTime_30d": 0,
            "warningsCount": 0
        },
        ...
    ],
    "page": 1,
    "count": 21,
    "filteredCount": 21,
    "totalCount": 21,
    "requestId": "3bb52d4d22.1613394688.5186.82182"
}

Seznam lze filtrovat podle status a/nebo type, například:

GET https://api.wedos.online/mon/checks?type=http&status=down

Význam položek v odpovědi:

PoleVýznam
IDID kontroly
namenázev kontroly
typetyp kontroly (ping, http, dns, smtp, ...)
periodinterval testování (sekundy)
fullTargetnázev hostitele/domény cíle (doménový název, server)
statusaktuální stav kontroly (ok, slow, response_timeout, down, response_error, disabled, ...)
statusStampposlední změna stavu (UNIX timestamp)
statusDateposlední změna stavu (formát SQL, UTC)
createdStampdatum a čas vytvoření kontroly (UNIX timestamp)
createdDatedatum a čas vytvoření kontroly (formát SQL, UTC)
uptime_1duptime za posledních 24 hodin (procenta)
errorSeconds_1dsekundy v chybovém stavu za posledních 24 hodin
avgTime_1dprůměrný čas odezvy za posledních 24 hodin (sekundy)
uptime_7duptime za posledních 7 dní (procenta)
errorSeconds_7dsekundy v chybovém stavu za posledních 7 dní
avgTime_7dprůměrný čas odezvy za posledních 7 dní (sekundy)
uptime_30duptime za posledních 30 dní (procenta)
errorSeconds_30dsekundy v chybovém stavu za posledních 30 dní
avgTime_30dprůměrný čas odezvy za posledních 30 dní (sekundy)
warningsCountpočet aktivních varování

Stav může být:

StavVýznam
unknowntest zatím neproběhl
okvše je v pořádku
slowodpověď byla úspěšná, ale pomalá
response_timeoutspojení bylo navázáno, ale vypršel čas při čekání na odpověď
downspojení selhalo
response_errorchybná odpověď
maintenancekontrola je v plánované údržbě
pausedkontrola je pozastavena, testy se neprovádí
disabledkontrola byla zakázána administrátorem
deniedmonitoring odmítl provést test, obvykle protože se cíl překládá na IP adresu v privátním rozsahu
unverifiedneověřili jste vlastnictví webu, který chcete monitorovat (platí pro HTTP kontroly)
invalidStatusjiný chybný stav monitorované služby

Detail kontroly

Metoda check zobrazí více detailů o jedné konkrétní kontrole (monitorované službě). Do URL přidáte ID kontroly, například:

GET https://api.wedos.online/mon/check/5151

Příklad odpovědi

{
    "check": {
        "ID": 5151,
        "name": "seznam.cz DNSSEC",
        "type": "dnssec",
        "period": 600,
        "fullTarget": "seznam.cz",
        "status": "ok",
        "statusStamp": 1612886736,
        "statusDate": "2021-02-09 16:05:36",
        "createdStamp": 1612886708,
        "createdDate": "2021-02-09 16:05:08",
        "uptime_1d": 100,
        "errorSeconds_1d": 0,
        "avgTime_1d": 0,
        "uptime_7d": 100,
        "errorSeconds_7d": 0,
        "avgTime_7d": 0,
        "uptime_30d": 100,
        "errorSeconds_30d": 0,
        "avgTime_30d": 0,
        "warningsCount": 0,
        "lastTestStamp": 1613396132,
        "lastTestDate": "2021-02-15 13:35:32",
        "requestTime": null,
        "info": "seznam.cz/SOA secured by DNSSEC\nSignature expiration: 2021-02-28 16:01:01 UTC",
        "testsCount": 363,
        "errorsCount": 0,
        "pendingErrorsCount": 0,
        "lastErrorBeginStamp": null,
        "ip": null,
        "ptr": null,
        "nextStamp": 1613396731,
        "warnings": []
    },
    "requestId": "3bb52d4d22.1613396687.4247.82403"
}

Doplňující informace o kontrole:

PoleVýznam
lastTestStampnaposledy provedený test (UNIX timestamp)
lastTestDatenaposledy provedený test (formát SQL, UTC)
requestTimečas odezvy z posledního testu (ms), pokud je k dispozici
infodoplňující informace (chybová zpráva, detaily odpovědi)
testsCountpočet testů od úplného počátku
errorsCountpočet chybových výsledků od úplného počátku
pendingErrorsCountpočet aktuálních chyb
lastErrorBeginStampzačátek aktuálního chybového stavu (UNIX timestamp)
ipIP adresa cíle (pokud je k dispozici)
ptrreverzní záznam (PTR) cíle (pokud je k dispozici)
nextStamppřibližné datum a čas dalšího testu (UNIX timestamp)
warningspole dodatečných varování (expirace certifikátu, IP na blocklistech, méně závažné chyby odpovědi atd.)

Zapojte to do své infrastruktury.

Vytvořte účet, přidejte kontrolu a vygenerujte API klíč během pár minut.

Začít zdarma