Podstawowe informacje
Komunikacja z API odbywa się po protokole https lub http poprzez wysłanie zapytania typu GET lub POST z wymaganymi przez daną metodę
parametrami. Autoryzacja polega na dołączeniu do każdego zapytania parametru token zawierającego klucz użytkownika. Klucz może
zostać wygenerowany w Panelu Użytkownika na stronie Udostępnianie i API / API. Klucz jest przypisany do konkretnego użytkownika i
nie powinien być udostępniany osobom niepowołanym.
Odpowiedź API zakodowana jest w formacie JSON i składa się z sekcji header oraz data. Część header zawiera informacja
o statusie odpowiedzi oraz ew. treść błędu. W data natomiast zawarte są wszelkie dane zwracane przez wywołaną metodę.
Wszelkie daty zapisane są w polskiej strefie czasowej, tj. UTC+01:00 w formacie yyyy-mm-dd hh:mm:ss.
Metoda "get-account-info"
Pobiera informacje o koncie.
Parametry zapytania
Brak
Parametry odpowiedzi
Parametr |
Opis |
Format |
Wymagany |
email |
Adres email |
string |
tak |
locale |
Wersja językowa Panelu Użytkownika |
PL, EN |
tak |
planName |
Nazwa aktualnego planu |
string |
tak |
planExpireAt |
Data wygaśnięcia aktualnego planu |
yyyy-mm-dd |
nie |
lastLoginAt |
Data ostatniego logowania |
yyyy-mm-dd hh:mm:ss |
nie |
lastLoginIp |
Adres IP z którego nastąpiło ostatnie logowanie |
string |
nie |
credits |
Liczba kredytów na powiadomienia w puli podstawowej w ramach posiadanego planu |
int |
tak |
extraCredits |
Liczba kredytów dodatkowych na powiadomienia |
int |
tak |
Przykład użycia
https://api.ping.pl/1.0/get-account-info?token=abc123
{
"header": {
"status": "OK"
},
"data": {
"email": "admin@ping.pl",
"locale": "PL",
"planName": "Plan Platynowy",
"planExpireAt": "2018-01-01",
"lastLoginAt": "2017-06-14 13:51:30",
"lastLoginIp": "79.133.201.36",
"credits": 429,
"extraCredits": 100
}
}
Metoda "get-monitors"
Pobiera listę wszystkich monitorów użytkownika (również udostępnione przez innych użytkowników) wraz z podstawowymi informacjami.
Parametry zapytania
Brak
Parametry odpowiedzi
Parametr |
Opis |
Format |
Wymagany |
monitors |
Tablica z listą pobranych monitorów |
array |
tak |
monitors[i].id |
Identyfikator monitora |
int |
tak |
monitors[i].status |
Status monitora |
ACTIVE, INACTIVE, DELETED, BLOCKED |
tak |
monitors[i].type |
Typ monitora |
WWW, WWW_FULL, WWW_SCRIPT, WWW_HEALTH, PING, TCP_UDP, MAIL, DNS |
tak |
monitors[i].name |
Nazwa monitora |
string |
tak |
monitors[i].note |
Notatka monitora |
string |
tak |
monitors[i].tags |
Tablica z listą przypisanych tagów |
array |
tak |
monitors[i].isShared |
Flaga określająca czy monitor został udostępniony przez innego użytkownika |
0, 1 |
tak |
monitors[i].currentOutageId |
Identyfikator aktualnie trwającej awarii |
int |
nie |
Przykład użycia
https://api.ping.pl/1.0/get-monitors?token=abc123
{
"header": {
"status": "OK"
},
"data": {
"monitors": [
{
"id": 3009,
"status": "ACTIVE",
"type": "WWW",
"name": "Sklep - strona główna",
"isShared": 0
},
{
"id": 3118,
"status": "ACTIVE",
"type": "WWW",
"name": "Sklep - rejestracja",
"currentOutageId": 47017,
"isShared": 0
},
{
"id": 3254,
"status": "ACTIVE",
"type": "PING",
"name": "Sklep - serwer pocztowy",
"isShared": 1
}
]
}
}
Metoda "pause-monitor"
Wstrzymuje monitoring wskazanego monitora.
Parametry zapytania
Parametr |
Opis |
Format |
Wymagany |
monitorId |
Identyfikator monitora |
int |
tak |
Parametry odpowiedzi
Brak
Przykład użycia
https://api.ping.pl/1.0/pause-monitor?token=abc123&monitorId=3009
{
"header": {
"status": "OK"
}
}
Metoda "start-monitor"
Wznawia monitoring wcześniej wstrzymanego monitora.
Parametry zapytania
Parametr |
Opis |
Format |
Wymagany |
monitorId |
Identyfikator monitora |
int |
tak |
Parametry odpowiedzi
Brak
Przykład użycia
https://api.ping.pl/1.0/start-monitor?token=abc123&monitorId=3009
{
"header": {
"status": "OK"
}
}
Metoda "get-data"
Pobiera dane o dostępności i czasie odpowiedzi wskazanego monitora. Jeśli nie zostanie podany zakres dat, dane zostaną pobrane dla bieżącego dnia. Rozdzielczość danych dobierana jest automatycznie na podstawie długości okresu. Możliwa jest zmiana rozdzielczości za pomocą parametru
resolution, jednak tylko na mniej dokładną niż ta wybrana automatycznie.
Parametry zapytania
Parametr |
Opis |
Format |
Wymagany |
monitorId |
Identyfikator monitora |
int |
tak |
dateFrom |
Data "od" pobieranych danych |
yyyy-mm-dd |
nie |
dateTo |
Data "do" pobieranych danych |
yyyy-mm-dd |
nie |
resolution |
Rozdzielczość danych |
EVERY_15_MINUTES, EVERY_8_HOURS, HOURLY, DAILY, MONTHLY |
nie |
Parametry odpowiedzi
Parametr |
Opis |
Format |
Wymagany |
data |
Tablica z danymi pogrupowanymi wg daty |
array |
tak |
data[i].date |
Data grupy danych |
yyyy-mm-dd [hh:mm:ss] |
tak |
data[i].uptime |
Dostępność |
float, 0-100% |
tak |
data[i].responseTime |
Czas odpowiedzi |
float, sekundy |
tak |
Przykład użycia
https://api.ping.pl/1.0/get-data?token=abc123&monitorId=3009&dateFrom=2016-01-01&dateTo=2016-01-01&resolution=HOURLY
{
"header": {
"status": "OK"
},
"data": {
"data": [
{
"date": "2016-01-01 00:00:00",
"uptime": 100,
"responseTime": 0.576122
},
{
"date": "2016-01-01 01:00:00",
"uptime": 100,
"responseTime": 0.586275
},
{
"date": "2016-01-01 02:00:00",
"uptime": 100,
"responseTime": 0.581229
},
{
"date": "2016-01-01 03:00:00",
"uptime": 100,
"responseTime": 0.585643
},
{
"date": "2016-01-01 04:00:00",
"uptime": 100,
"responseTime": 0.579071
},
{
"date": "2016-01-01 05:00:00",
"uptime": 100,
"responseTime": 0.59766
},
{
"date": "2016-01-01 06:00:00",
"uptime": 100,
"responseTime": 0.595221
}
]
}
}
Metoda "get-outage"
Pobiera szczegóły awarii.
Parametry zapytania
Parametr |
Opis |
Format |
Wymagany |
outageId |
Identyfikator awarii |
int |
tak |
Parametry odpowiedzi
Parametr |
Opis |
Format |
Wymagany |
monitorId |
Identyfikator monitora, którego awaria dotyczy |
int |
tak |
reason |
Przyczyna awarii |
string |
tak |
reasonDetails |
Dodatkowe informacja dot. przyczyny awarii, np. słowo kluczowe, które nie zostało znalezione w kodzie HTML strony |
string |
nie |
startedAt |
Data i czas wykrycia awarii |
string |
tak |
endedAt |
Data i czas zakończenia awarii |
string |
nie |
tests |
Lista ostatnich testów wykonanych w trakcie trwania awarii |
array |
tak |
tests[i].status |
Status testu |
string |
tak |
tests[i].responseTime |
Czas odpowiedzi |
float, sekundy |
tak |
tests[i].date |
Data wykonania testu |
yyyy-mm-dd hh:mm:ss |
tak |
tests[i].location |
Nazwa lokalizacji, która wykonała test |
string |
tak |
notifications |
Lista wysłanych powiadomien z powodu awarii |
array |
nie |
notifications[i].event |
Zdarzenie |
UP, DOWN, BOUNCE, REMIND, INFO, SLOWER_LOAD_TIME |
tak |
notifications[i].type |
Typ powiadomienia, np. SMS |
string |
tak |
notifications[i].receiver |
Odbiorca powiadomienia, np. numer telefonu |
string |
tak |
notifications[i].date |
Data wysłania powiadomienia |
yyyy-mm-dd hh:mm:ss |
tak |
Przykład użycia
https://api.ping.pl/1.0/get-outage?token=abc123&outageId=47017
{
"header": {
"status": "OK"
},
"data": {
"id": 47017,
"reason": "KEYWORDS_MUST_EXIST",
"startedAt": "2017-06-30 10:21:00",
"reasonDetails": "<h1>Dołącz do nas!</h1>",
"tests": [
{
"status": "KEYWORDS_MUST_EXIST",
"responseTime": 15.0011,
"date": "2017-06-30 10:22:01",
"location": "Warszawa"
},
{
"status": "KEYWORDS_MUST_EXIST",
"responseTime": 15.0011,
"date": "2017-06-30 10:21:01",
"location": "Gdańsk"
},
{
"status": "KEYWORDS_MUST_EXIST",
"responseTime": 15.0001,
"date": "2017-06-30 10:21:00",
"location": "Poznań"
}
],
"notifications": [
{
"event": "DOWN",
"type": "SMS",
"receiver": "000000000",
"date": "2017-06-30 10:26:00"
},
{
"event": "DOWN",
"type": "EMAIL",
"receiver": "admin@ping.pl",
"date": "2017-06-06 10:26:00"
}
]
}
}
Metoda "get-outages"
Pobiera listę awarii dla wskazanego monitora.
Parametry zapytania
Parametr |
Opis |
Format |
Wymagany |
monitorId |
Identyfikator monitora |
int |
tak |
dateFrom |
Minimalna data wykrycia awarii |
yyyy-mm-dd |
nie |
dateTo |
Maksymalna data wykrycia awarii |
yyyy-mm-dd |
nie |
limit |
Limit ilości zwracanych awarii |
int, domyślnie: 50, maks: 200 |
nie |
Parametry odpowiedzi
Parametr |
Opis |
Format |
Wymagany |
outages |
Tablica z listą pobranych awarii |
array |
tak |
outages[i].id |
Identyfikator awarii |
int |
tak |
outages[i].reason |
Przyczyna awarii |
string |
tak |
outages[i].reasonDetails |
Szczegóły przyczyny awarii |
string |
nie |
outages[i].startedAt |
Data i godzina wykrycia awarii |
yyyy-mm-dd hh:mm:ss |
tak |
outages[i].endedAt |
Data i godzina zakończenia awarii |
yyyy-mm-dd hh:mm:ss |
nie |
Przykład użycia
https://api.ping.pl/1.0/get-outages?token=abc123&monitorId=3009&limit=100&dateFrom=2017-03-11
{
"header": {
"status": "OK"
},
"data": {
"outages": [
{
"id": 43900,
"reason": "KEYWORDS_MUST_EXIST",
"startedAt": "2017-03-23 06:43:51",
"endedAt": "2017-03-23 06:51:50",
"reasonDetails": "<h1>Dołącz do nas!</h1>"
},
{
"id": 43712,
"reason": "HTTP_CODE_500",
"startedAt": "2017-03-19 00:02:51",
"endedAt": "2017-03-19 07:26:55"
},
{
"id": 43376,
"reason": "HTTP_CODE_500",
"startedAt": "2017-03-11 23:58:52",
"endedAt": "2017-03-12 00:08:50"
}
]
}
}
Metoda "get-delivery-methods"
Pobiera listę wszystkich metod powiadomień użytkownika.
Parametry zapytania
Brak
Parametry odpowiedzi
Parametr |
Opis |
Format |
Wymagany |
delivery-methods |
Tablica z listą pobranych metod powiadomień |
array |
tak |
delivery-methods[i].id |
Identyfikator kontaktu |
int |
tak |
delivery-methods[i].locale |
Język wysyłanych powiadomień i raportów |
pl, en |
tak |
delivery-methods[i].name |
Nazwa metody powiadomień |
string |
tak |
delivery-methods[i].type |
Typ metody powiadomień, np. SMS lub EMAIL |
string |
tak |
delivery-methods[i].value |
Wartość metody powiadomień, np. numer telefonu lub adres email |
string |
nie |
delivery-methods[i].isTimeMaskEnabled |
Flaga określająca czy metoda powiadomień ma określone dni i godziny w których będą wysyłane powiadomienia |
0, 1 |
tak |
delivery-methods[i].timeMaskWeekdaysFrom |
Godzina od której będa wysyłane powiadomienia w dni powszednie (działa tylko wtedy gdy isTimeMaskEnabled = 1) |
hh:mm:ss |
nie |
delivery-methods[i].timeMaskWeekdaysTo |
Godzina do której będa wysyłane powiadomienia w dni powszednie (działa tylko wtedy gdy isTimeMaskEnabled = 1) |
hh:mm:ss |
nie |
delivery-methods[i].timeMaskWeekendsFrom |
Godzina od której będa wysyłane powiadomienia w soboty i niedziele (działa tylko wtedy gdy isTimeMaskEnabled = 1) |
hh:mm:ss |
nie |
delivery-methods[i].timeMaskWeekendsTo |
Godzina do której będa wysyłane powiadomienia w soboty i niedziele (działa tylko wtedy gdy isTimeMaskEnabled = 1) |
hh:mm:ss |
nie |
Przykład użycia
https://api.ping.pl/1.0/get-delivery-methods?token=abc123
{
"header": {
"status": "OK"
},
"data": {
"delivery-methods": [
{
"id": 123,
"locale": "pl",
"name": "User",
"type": "EMAIL",
"value": "user@example.com",
"isTimeMaskEnabled": 0
},
{
"id": 456,
"locale": "en",
"name": "User Two",
"type": "SMS",
"value": "123123123",
"isTimeMaskEnabled": 1,
"timeMaskWeekdaysFrom": "08:00:00",
"timeMaskWeekdaysTo": "15:00:00",
"timeMaskWeekendsFrom": "10:30:00",
"timeMaskWeekendsTo": "14:30:00"
}
]
}
}