Dokumentacija
Pregled API-ja
API omogoča vašim orodjem, da preberejo, kar ve PulseKeeper: incidente, monitorje in razpoložljivost. Tipična uporaba je poročilo, ki ga sestavite sami, na primer mesečni povzetek v lastni predlogi ali nadzorna plošča, ki združuje več storitev.
API je zaenkrat samo za branje in je del paketa Pro in višjih.
Končne točke
| Endpoint | |
|---|---|
GET /api/v1/incidents |
Potrjeni incidenti v obdobju, najnovejši najprej |
GET /api/v1/incidents/{id} |
En incident |
GET /api/v1/monitors |
Vsi monitorji ekipe |
GET /api/v1/monitors/{id} |
En monitor |
GET /api/v1/monitors/{id}/uptime |
Razpoložljivost enega monitorja v obdobju |
Vse so pod http://pulsekeeper.io/api/v1.
Žetoni
Žeton ustvarite pod Nastavitve → API. Ustvarijo ali prekličejo ga lahko samo lastniki in skrbniki.
- Žeton pripada ekipi, ne osebi, ki ga je ustvarila. Deluje še naprej, ko ta oseba odide.
- Žeton je prikazan enkrat. Hranimo samo njegov hash, zato ga takoj kopirajte. Če ga izgubite, ga prekličite in ustvarite novega.
- Ekipa ima lahko do 10 žetonov. Vsakemu orodju dajte svojega, da lahko enega prekličete, ne da bi pokvarili ostala.
Avtentikacija
Žeton pošljite v glavi Authorization vsakega zahtevka, kot Bearer, ki mu sledi žeton. Hranite ga na svojem strežniku: kdor ima žeton, lahko bere vaše incidente.
cURL
curl http://pulsekeeper.io/api/v1/monitors \
-H "Authorization: Bearer $PULSEKEEPER_TOKEN" \
-H "Accept: application/json"
PHP
<?php
// composer require guzzlehttp/guzzle
$client = new GuzzleHttp\Client([
'base_uri' => 'http://pulsekeeper.io/api/v1/',
'headers' => [
'Authorization' => 'Bearer '.getenv('PULSEKEEPER_TOKEN'),
'Accept' => 'application/json',
],
]);
$monitors = json_decode($client->get('monitors')->getBody(), true)['data'];
JavaScript
const response = await fetch('http://pulsekeeper.io/api/v1/monitors', {
headers: {
Authorization: `Bearer ${process.env.PULSEKEEPER_TOKEN}`,
Accept: 'application/json',
},
});
const { data: monitors } = await response.json();
Go
req, _ := http.NewRequest("GET", "http://pulsekeeper.io/api/v1/monitors", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("PULSEKEEPER_TOKEN"))
req.Header.Set("Accept", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer res.Body.Close()
Dogovori
- ID-ji so kratki nizi, na primer
"3f9a1c0e7b2d4a58". Uporabite jih takšne, kot so; nikoli se ne spremenijo. - Časi so v obliki ISO 8601 v UTC, na primer
"2026-09-30T21:14:05Z". Za poročilo jih pretvorite v svoj časovni pas. - Obdobja sprejmejo
fromintokot datum ali datum in čas z zamikom:2026-09-01ali2026-09-01T00:00:00+02:00. V URL-ju zapišite+kot%2B. - Neznano je
null. Vrednost, ki je nismo izmerili, jenull, nikoli0ali100. - Zgodovina sega tako daleč nazaj, kot dovoli vaš paket, enako kot v aplikaciji. Zahteva za več vrne
422z razlago namesto krajšega odgovora, tako da poročilo nikoli ne izgleda boljše, kot je bil mesec.
Napake
Napake so JSON s poljem message; napake validacije imajo tudi errors po parametrih.
{
"message": "Your plan keeps 365 days of history.",
"errors": { "from": ["Your plan keeps 365 days of history."] }
}
| Status | Pomen |
|---|---|
401 |
Žeton manjka, je napačen ali preklican. |
403 |
Vaš paket API-ja ne vključuje več ali pa je račun suspendiran. Žeton ostane in po menjavi paketa spet deluje. |
404 |
Takega incidenta ali monitorja v vaši ekipi ni. |
422 |
Parameter ni veljaven ali pa obdobje sega dlje nazaj, kot dovoli vaš paket. |
429 |
Preveč zahtevkov: počakajte toliko sekund, kot jih navaja glava Retry-After. |
Omejitev zahtevkov
120 zahtevkov na minuto na žeton. Vsak odgovor vsebuje X-RateLimit-Limit in X-RateLimit-Remaining. Mesečno poročilo za 50 strank brez težav ustreza tej meji; če podatke redno povprašujete, je enkrat na minuto povsem dovolj, saj so incidenti tako ali tako potrjeni v približno minuti.