API-Überblick
Nutzen Sie die öffentliche API, um Monitore, Snapshots und Webhooks programmgesteuert zu verwalten.
Alles, was im UI möglich ist, lässt sich auch über die öffentliche API automatisieren.
Authentifizierung
- Bearer-Tokens, die im Dashboard erstellt werden.
- Senden Sie bei jeder Anfrage
Authorization: Bearer <token>. - Rate Limits gelten pro Organisation und pro Endpoint.
Häufige Endpunkte
POST /api/monitorszum Erstellen eines Monitors.GET /api/monitors/{id}/diffszum Abrufen der Änderungshistorie.POST /api/webhooks/worker/runzum Auslösen von Test-Deliveries.
curl -H "Authorization: Bearer $TOKEN" \
https://api.diffmon.example.com/api/monitorsFehler
Fehler enthalten Request-IDs und machine-readable Codes, sodass Sie gezielt retryn oder sinnvolle Meldungen upstream ausgeben können.
Diff-Beispiele
Wenn DiffMon eine Änderung erkennt, enthält die Diff-Antwort Klassifikation, Schweregrad und Änderungsdetails pro Pfad. Diese Beispiele zeigen, was Sie beim Abfragen der API erwarten können.
API-Monitor — Schema-Änderung erkannt
Eine GET /api/monitors/{id}/diffs/{diffId}-Antwort für einen JSON-Endpoint, dessen Schema sich geändert hat:
{
"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"
}Wichtige Felder: classification gibt den Gesamttyp der Änderung an, topSeverity ist der höchste Schweregrad über alle Änderungen hinweg, und jeder Eintrag in changes liefert Kontext auf Pfadebene. Siehe Smart Schema Validation für das vollständige Schweregradmodell.
Website-Monitor — DOM-Änderung erkannt
Eine GET /api/monitors/{id}/diffs/{diffId}-Antwort für einen Website-Monitor mit Browser Render:
{
"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"
}Website-Diffs enthalten Render-Kontext (browserRender, waitStrategy, selector), damit Sie die genauen Bedingungen reproduzieren können, die die Änderung ausgelöst haben.
Webhook-Event-Envelope
Wenn Webhooks konfiguriert sind, liefert DiffMon ein diff.detected-Event mit denselben Änderungsdaten in einem signierten Envelope:
{
"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"
}
]
}
}Verwenden Sie eventId für Idempotenz und diffId, um den vollständigen Diff über die API abzurufen. Siehe Webhooks für HMAC-Verifizierung, Retry-Zeitplan und Event-Typen.
Browser Render per API
Für JavaScript-lastige URL-Monitore setzen Sie beim Erstellen oder Aktualisieren browserOptions.
- Request-Feld:
browserOptions - Persistiertes und zurückgegebenes Monitor-Feld:
browserOptionsJson
Gültige Options-Formen, Beispiele und Fehlercodes finden Sie in den Browser Render Docs.
Policy Rules per API
Policy Rules werden über die Monitor-Einstellungen konfiguriert:
GET /api/monitors/{id}/settingsliestpolicyRulesJsonPATCH /api/monitors/{id}/settingsersetzt mitpolicyRulesden gesamten Rule-Set
Verwenden Sie rules: [], um Regeln zu leeren. Lassen Sie policyRules weg, wenn gespeicherte Regeln unverändert bleiben sollen.
Das Regelschema und Verhalten beschreibt Policy rules.