Dieser Browser kann die Seite nicht korrekt darstellen. Bitte aktualisieren Sie Ihren Browser auf die neueste Version.

Miharu

Webhook-Integrationsleitfaden

Wenn Sie einen Webhook einrichten, sendet Miharu seine Überwachungsergebnisse (Systemalerts) als HTTP POST mit JSON-Body an eine URL Ihrer Wahl. So verbinden Sie Zapier, Make, n8n, Ihren eigenen Server und mehr und verarbeiten Benachrichtigungen ganz nach Ihren Vorstellungen.

Diese Funktion richtet sich an Entwickler und erfahrene Nutzer. Auf Ihrer Seite wird ein empfangender Endpunkt benötigt.

1. Einrichtung

  1. 1Öffnen Sie in der App „Externe Benachrichtigungen“ → „Webhook“.
  2. 2Geben Sie die Webhook-URL des Ziels ein (muss mit https:// beginnen).
  3. 3Legen Sie bei Bedarf den Benachrichtigungsfilter fest (z. B. nur eine bestimmte Überwachungsgruppe).
  4. 4Beim Speichern wird eine Testbenachrichtigung zur Bestätigung zugestellt.

2. HTTP-Spezifikation

Methode
POST
Body
JSON (UTF-8)
Wichtige Header
Content-Type: application/json; charset=utf-8 User-Agent: Miharu-Webhook/1.0 X-Miharu-Event: <event> (Ereignistyp) X-Miharu-Notification-Id: <id> (eindeutige Benachrichtigungs-ID)
Timeout
10 Sekunden
Erfolg
Einen HTTP-Status 2xx zurückgeben
Geben Sie zügig 2xx zurück. Wenn 10-mal hintereinander eine Antwort ungleich 2xx kommt, wird der Versand an diesen Webhook automatisch gestoppt (durch erneutes Einrichten in der App wieder aktivierbar). Aufwendige Verarbeitung erledigen Sie asynchron, nachdem Sie geantwortet haben.

Es wird kein Signatur-Header (z. B. HMAC) gesendet. Die Webhook-URL selbst ist das Geheimnis (siehe Sicherheit unten).

3. Payload (gemeinsame Felder)

source stringFester Wert "miharu"
version stringVersion der Payload-Spezifikation (aktuell "1")
id stringEindeutige Benachrichtigungs-ID (UUID). Dasselbe Ereignis behält bei Wiederholungen dieselbe id (zur Duplikatserkennung).
timestamp stringZeitpunkt des Ereignisses (ISO 8601, UTC)
language stringSprachcode (en/ja/de/pt/es/fr/ko)
event stringEreignistyp (Tabelle unten)
monitor object / nullÜberwachte Seite {id, name, url}. Bei system-Ereignissen null.
message objectAnzeigetext {body, label}. label ist null, wenn nicht zutreffend.
detail objectDetails je Ereignistyp (unten)

4. Ereignistypen und detail

page_changedÄnderungserkennung (Seiteninhalt hat sich seit der letzten Prüfung geändert){ diff: [...], truncated: bool }
keyword_hitSchlüsselworterkennung{ hits: [{ keywords: [...], excerpts: [...] }] }
new_linkErkennung neuer Links{ links: [{ text, url }] }
price_changedPreis-/Wertänderung{ target_name, before, after }
text_changedTextänderung{ target_name, before, after }
systemSystembenachrichtigung (Einrichtung abgeschlossen, Überwachung pausiert usw.){ kind: string } (Zeichenkette, die die Art angibt)

Das diff bei page_changed

diff ist ein Array der Änderungen. Jedes Element ist eines der folgenden:

Ist truncated gleich true, war der Unterschied groß und wurde teilweise ausgelassen.

5. Beispiele

Änderungserkennung (page_changed)

JSON
{
  "source": "miharu",
  "version": "1",
  "id": "5c2e1b7a-9f3d-5a6b-8c4e-1d2f3a4b5c6d",
  "timestamp": "2026-05-22T01:23:45Z",
  "language": "de",
  "event": "page_changed",
  "monitor": { "id": "abc123", "name": "Produktseite", "url": "https://example.com/item" },
  "message": { "body": "Die Seite wurde aktualisiert.", "label": "Aktualisierung" },
  "detail": {
    "diff": [
      { "op": "replaced", "before": "Nicht verfügbar", "after": "Verfügbar" },
      { "op": "added", "text": "Heute eingetroffen" }
    ],
    "truncated": false
  }
}

Schlüsselworterkennung (keyword_hit)

JSON
{
  "source": "miharu", "version": "1", "id": "…",
  "timestamp": "2026-05-22T01:23:45Z", "language": "de",
  "event": "keyword_hit",
  "monitor": { "id": "abc123", "name": "Verfügbarkeitsseite", "url": "https://example.com/stock" },
  "message": { "body": "Ein Schlüsselwort wurde erkannt.", "label": "Schlüsselwort" },
  "detail": { "hits": [ { "keywords": ["eingetroffen"], "excerpts": ["…heute eingetroffen…"] } ] }
}

Erkennung neuer Links (new_link)

JSON
{
  "…": "…",
  "event": "new_link",
  "message": { "body": "Ein neuer Link wurde erkannt.", "label": "Neuer Link" },
  "detail": { "links": [ { "text": "Ankündigung eines neuen Produkts", "url": "https://example.com/news/123" } ] }
}

Preis-/Wertänderung (price_changed)

JSON
{
  "…": "…",
  "event": "price_changed",
  "message": { "body": "„Preis“ hat sich geändert.\n\n1980 → 1480", "label": "Preis/Wert" },
  "detail": { "target_name": "Preis", "before": "1980", "after": "1480" }
}

6. Idempotenz (Duplikatserkennung)

Dasselbe Ereignis kommt immer mit derselben id an, auch bei Wiederholungen (derselbe Wert steht auch im Header X-Miharu-Notification-Id). Nutzen Sie id auf Ihrer Seite, um doppelte Verarbeitung zu vermeiden.

7. Sicherheit

8. Integrationen

Erzeugen Sie in Ihrem Dienst eine Empfangs-URL und tragen Sie sie in Miharu als Webhook-URL ein.

9. Einschränkungen

10. Fehlersuche


Ihre Hinweise und Wünsche senden Sie über „Feedback & Vorschläge“ in der App.

Alle Benachrichtigungskanäle richten Sie in der App ein.App laden