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.
Parametry zapytania
Parametr |
Opis |
Format |
Wymagany |
monitorId |
Identyfikator monitora |
int |
tak |
dateFrom |
Data "od" pobieranych danych |
yyyy-mm-dd |
tak |
dateTo |
Data "do" pobieranych danych |
yyyy-mm-dd |
tak |
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
{
"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-contacts"
Pobiera listę wszystkich kontaktów użytkownika.
Parametry zapytania
Brak
Parametry odpowiedzi
Parametr |
Opis |
Format |
Wymagany |
contacts |
Tablica z listą pobranych kontaktów |
array |
tak |
contacts[i].id |
Identyfikator kontaktu |
int |
tak |
contacts[i].status |
Status kontaktu |
ACTIVE, INACTIVE |
tak |
contacts[i].locale |
Język powiadomień i raportów wysyłanych na kontakt |
PL, EN |
tak |
contacts[i].name |
Nazwa kontaktu |
string |
nie |
contacts[i].email |
Adres email |
string |
nie |
contacts[i].phoneNumber |
Numer telefonu |
string |
nie |
contacts[i].isTimeMaskEnabled |
Flaga określająca czy kontakt ma określone dni i godziny w których będą wysyłane powiadomienia |
0, 1 |
tak |
contacts[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 |
contacts[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 |
contacts[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 |
contacts[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-contacts?token=abc123
{
"header": {
"status": "OK"
},
"data": {
"contacts": [
{
"id": 123,
"status": "ACTIVE",
"locale": "pl",
"email": "user@example.com",
"isTimeMaskEnabled": 0
},
{
"id": 456,
"status": "ACTIVE",
"locale": "en",
"email": "user2@example.com",
"phoneNumber": "123123123",
"isTimeMaskEnabled": 1,
"timeMaskWeekdaysFrom": "08:00:00",
"timeMaskWeekdaysTo": "15:00:00",
"timeMaskWeekendsFrom": "10:30:00",
"timeMaskWeekendsTo": "14:30:00"
}
]
}
}
Metoda "activate-contact"
Aktywuje wskazany kontakt. Na aktywne kontakty wysyłane są powiadomienia oraz raporty okresowe.
Parametry zapytania
Parametr |
Opis |
Format |
Wymagany |
contactId |
Identyfikator kontaktu |
string |
int |
Parametry odpowiedzi
Metoda nie zwraca żadnej treści a jedynie status.
Przykład użycia
https://api.ping.pl/1.0/activate-contact?token=abc123&contact=123
{
"header": {
"status": "OK"
}
}
Metoda "deactivate-contact"
Dezaktywuje wskazany kontakt. Na nieaktywne kontakty nie są wysyłane powiadomienia oraz raporty okresowe.
Parametry zapytania
Parametr |
Opis |
Format |
Wymagany |
contactId |
Identyfikator kontaktu |
int |
tak |
Parametry odpowiedzi
Metoda nie zwraca żadnej treści a jedynie status.
Przykład użycia
https://api.ping.pl/1.0/deactivate-contact?token=abc123&contactId=123
{
"header": {
"status": "OK"
}
}