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 from in to kot datum ali datum in čas z zamikom: 2026-09-01 ali 2026-09-01T00:00:00+02:00. V URL-ju zapišite + kot %2B.
  • Neznano je null. Vrednost, ki je nismo izmerili, je null, nikoli 0 ali 100.
  • Zgodovina sega tako daleč nazaj, kot dovoli vaš paket, enako kot v aplikaciji. Zahteva za več vrne 422 z 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.