Dokumentacija

Pridobi incident

GET /api/v1/incidents/{id}

En potrjen incident, po id iz seznama incidentov. Incident druge ekipe ali sum, ki ni bil nikoli potrjen, vrne 404.

Primer

cURL

curl http://pulsekeeper.io/api/v1/incidents/3f9a1c0e7b2d4a58 \
  -H "Authorization: Bearer $PULSEKEEPER_TOKEN"

PHP

<?php

// composer require guzzlehttp/guzzle
$client = new GuzzleHttp\Client([
    'base_uri' => 'http://pulsekeeper.io/api/v1/',
    'headers' => ['Authorization' => 'Bearer '.getenv('PULSEKEEPER_TOKEN')],
]);

$incident = json_decode($client->get('incidents/3f9a1c0e7b2d4a58')->getBody(), true)['data'];

JavaScript

const response = await fetch('http://pulsekeeper.io/api/v1/incidents/3f9a1c0e7b2d4a58', {
  headers: { Authorization: `Bearer ${process.env.PULSEKEEPER_TOKEN}` },
});

const { data: incident } = await response.json();

Go

req, _ := http.NewRequest("GET", "http://pulsekeeper.io/api/v1/incidents/3f9a1c0e7b2d4a58", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("PULSEKEEPER_TOKEN"))

res, err := http.DefaultClient.Do(req)
if err != nil {
	log.Fatal(err)
}
defer res.Body.Close()

var body struct {
	Data map[string]any `json:"data"`
}
json.NewDecoder(res.Body).Decode(&body)

Odgovor

{
  "data": {
    "id": "3f9a1c0e7b2d4a58",
    "type": "downtime",
    "title": "Site unreachable",
    "severity": "critical",
    "state": "resolved",
    "monitor": { "id": "a81c27e05f3d9b64", "type": "http", "name": "HTTP", "target": "shop.example.com" },
    "client": { "id": "c4e0b9a17d2f6385", "name": "Example Shop" },
    "started_at": "2026-09-30T21:14:05Z",
    "confirmed_at": "2026-09-30T21:14:41Z",
    "acknowledged_at": null,
    "resolved_at": "2026-09-30T21:42:10Z",
    "duration_seconds": 1685,
    "excluded_from_sla": false,
    "affected_locations": ["fra", "lon"],
    "error": { "code": "http_5xx", "detail": "HTTP 502" },
    "cause": { "text": "Outage at the hosting provider", "in_report": true }
  }
}

Polja

Polje Pomen
type Kaj se je zgodilo: downtime, timeout, blocked (požarni zid blokira naša preverjanja), auth (stran zahteva geslo), ssl_expiring, ssl_invalid, domain_expiring, tag_missing (sledilna koda je izginila s strani), health_regressed (checklista strani se je poslabšala, npr. noindex), heartbeat_missed in drugi. title pove isto z besedami.
severity critical (izpad), warning ali info.
state confirmed, acknowledged (nekdo iz vaše ekipe ga je prevzel), resolved ali suppressed. Suppressed pomeni, da se je zgodil med oknom vzdrževanja: je resničen, a ne zniža razpoložljivosti.
monitor Monitor, na katerem se je zgodil. target je ime gostitelja; null pri heartbeatih.
client Stranka, ki ji tarča pripada; null pri heartbeatih.
started_at Prvo neuspelo preverjanje.
confirmed_at Ko ga je potrdila druga lokacija. Izpad se šteje od tu.
resolved_at Prvo uspešno preverjanje po njem; null, dokler traja.
duration_seconds Nastavljeno ob razrešitvi. Pri odprtem incidentu je null: štejte od started_at do trenutka, ki ga potrebujete.
excluded_from_sla true, kadar ne zniža razpoložljivosti, na primer med vzdrževanjem.
affected_locations Lokacije, ki so zaznale napako.
error Prva napaka: koda, kot je http_5xx, timeout ali dns_fail, in njene podrobnosti.
cause Kar je vaša ekipa zapisala pod Dodaj vzrok. Z in_report: false je bil vzrok označen kot interen: izpustite ga iz vsega, kar vidi vaša stranka.