Domů / Docs
Jak DiffMon funguje v oblasti monitoringu, alertů, bezpečnosti a API integrace.

Přehled API

Používejte veřejné API ke správě monitorů, snapshotů a webhooků programově.

Vše, co zvládnete v UI, lze automatizovat také přes veřejné API.

Autentizace

  • Bearer tokeny vytvořené v dashboardu.
  • U každého requestu posílejte Authorization: Bearer <token>.
  • Rate limity platí per org i per endpoint.

Běžné endpointy

  • POST /api/monitors pro vytvoření monitoru.
  • GET /api/monitors/{id}/diffs pro načtení historie změn.
  • POST /api/webhooks/worker/run pro spuštění testovací delivery.
Shell
curl -H "Authorization: Bearer $TOKEN" \
  https://api.diffmon.example.com/api/monitors

Chyby

Chyby obsahují request ID a machine-readable kódy, takže je můžete opakovat nebo smysluplně zobrazit upstreamu.

Příklady diffů

Když DiffMon detekuje změnu, odpověď diffu obsahuje klasifikaci, závažnost a detaily změn per cesta. Tyto příklady ukazují, co očekávat při dotazování API.

API monitor — detekována změna schématu

Odpověď GET /api/monitors/{id}/diffs/{diffId} pro JSON endpoint, kde se změnilo schéma:

Odpověď diffu — schema_change
JSON
{
  "id": "dif_01JX8M79YQ",
  "monitorId": "mon_api_prices",
  "classification": "schema_change",
  "schemaChanges": 2,
  "valueChanges": 1,
  "topSeverity": "critical",
  "diffFingerprint": "sha256:7a8c…",
  "changes": [
    {
      "path": "$.items[*].price",
      "category": "schema",
      "op": "replace",
      "severity": "critical",
      "detail": "number → string"
    },
    {
      "path": "$.items[*].currency",
      "category": "schema",
      "op": "add",
      "severity": "medium"
    },
    {
      "path": "$.generatedAt",
      "category": "value",
      "op": "replace",
      "severity": "info"
    }
  ],
  "requestId": "req_9f8bc",
  "status": 200,
  "latencyMs": 210,
  "createdAt": "2026-02-11T10:15:31Z"
}

Klíčová pole: classification udává celkový typ změny, topSeverity je nejvyšší závažnost across all changes a každý záznam v changes poskytuje kontext na úrovni cesty. Viz Smart Schema Validation pro úplný model závažnosti.

Website monitor — detekována změna DOM

Odpověď GET /api/monitors/{id}/diffs/{diffId} pro website monitor využívající Browser Render:

Odpověď diffu — změna webu
JSON
{
  "id": "dif_01JX8P0MW2",
  "monitorId": "mon_site_pricing",
  "classification": "content_change",
  "summary": {
    "additions": 1,
    "removals": 1,
    "modifications": 2
  },
  "changedTargets": [
    "#app .hero h1",
    "link[rel='canonical']"
  ],
  "diffFingerprint": "sha256:4bc1…",
  "requestId": "req_6p2ad",
  "status": 200,
  "latencyMs": 480,
  "browserRender": true,
  "waitStrategy": "networkidle",
  "selector": "#app",
  "createdAt": "2026-02-11T10:15:31Z"
}

Diffy webů obsahují kontext vykreslení (browserRender, waitStrategy, selector), abyste mohli reprodukovat přesné podmínky, které změnu vyvolaly.

Webhook event envelope

Když jsou nakonfigurovány webhooky, DiffMon doručí event diff.detected se stejnými daty změn uvnitř podepsaného envelope:

Webhook event — diff.detected
JSON
{
  "schemaVersion": "v1",
  "eventVersion": 1,
  "eventId": "evt_01JX8M7A2K",
  "eventType": "diff.detected",
  "occurredAt": "2026-02-11T10:15:31Z",
  "deliveredAt": "2026-02-11T10:15:32Z",
  "monitorId": "mon_api_prices",
  "diffId": "dif_01JX8M79YQ",
  "snapshotId": "snp_01JX8M6ZK0",
  "data": {
    "classification": "schema_change",
    "schemaChanges": 2,
    "valueChanges": 1,
    "changes": [
      {
        "path": "$.items[*].price",
        "category": "schema",
        "op": "replace",
        "severity": "critical"
      },
      {
        "path": "$.items[*].currency",
        "category": "schema",
        "op": "add",
        "severity": "medium"
      }
    ]
  }
}

Použijte eventId pro idempotenci a diffId pro načtení úplného diffu přes API. Viz Webhooks pro HMAC ověření, retry plán a typy eventů.

Browser Render přes API

U monitorů URL náročných na JavaScript nastavte při vytváření nebo update browserOptions.

  • Pole requestu: browserOptions
  • Ukládané a vracené pole monitoru: browserOptionsJson

Platné tvary options, příklady a error codes najdete v docs Browser Render.

Policy Rules přes API

Policy Rules se konfigurují přes nastavení monitoru:

  • GET /api/monitors/{id}/settings načte policyRulesJson
  • PATCH /api/monitors/{id}/settings s policyRules nahradí celý rule set

Použijte rules: [] pro vyčištění pravidel. Vynechte policyRules, pokud chcete uložená pravidla nechat beze změny. Schéma pravidel a chování popisují Policy rules.