Startseite
Preise
Plattform Blog Über uns Kontakt FAQ
Anmelden Kostenlos starten
Webhooks

Jeder Alert, jeder Endpunkt,
Ihre Integration.

Senden Sie einen signierten JSON-Payload an einen Endpunkt, den Sie kontrollieren, wenn ein Monitor auslöst: auswählbare Felder, automatische Wiederholungsversuche mit exponentiellem Backoff und ein Zustellprotokoll, damit Sie jedes Ereignis debuggen können.

Free tier included No credit card 2-minute setup
Site Qwality monitors list with status and sparklines

Bauen Sie jede Integration auf Webhooks auf.

Webhooks sind das universelle Integrations-Grundelement. Ob Sie Alerts in ein selbst entwickeltes Incident-Tool leiten, Jira-Tickets erstellen oder einen Datadog-Ereignisstrom speisen, der Webhook-Endpunkt ist dort, wo Site Qwality an Ihre Systeme übergibt.

JSON-Payload bei jedem Ereignis

Jede Zustellung ist ein JSON-Umschlag mit Ereignisname, Schweregrad, Zustellungs-ID und einem data-Objekt. Bei HTTP-Monitoren enthält data das Prüfergebnis: Monitor-ID, Status, geprüfte URL, HTTP-Code, Fehlergrund und die phasenweise Zeitmessung.

HMAC-SHA256-Signaturen

Jede Zustellung an eine Webhook-Integration enthält einen X-SiteQwality-Signature-Header. Er ist ein HMAC-SHA256 über die Zustellungs-ID, den Zeitstempel und den rohen Request-Body, mit Punkten verbunden und mit dem Signatur-Secret Ihres Endpunkts geschlüsselt. Der Zeitstempel steckt in der Signatur, sodass ein Empfänger, der ihn prüft, eine abgefangene und später erneut gesendete Zustellung ablehnen kann.

Automatische Wiederholungsversuche mit Backoff

Eine fehlgeschlagene Zustellung wird mit exponentiellem Backoff wiederholt, bis zu fünf Wiederholungen über 30 Minuten, bevor sie als fehlgeschlagen markiert wird. Das sind insgesamt sechs Zustellungen: der erste Versuch und fünf Wiederholungen.

Auswählbare Payload-Felder

Wählen Sie, welche Felder des Prüfergebnisses im Payload erscheinen, fügen Sie bis zu zehn eigene Metadaten-Schlüssel hinzu und filtern Sie Ereignisse nach Name oder Mindest-Schweregrad, damit Ihr Empfänger nur verarbeitet, was er braucht.

Zustellprotokoll und -inspektor

Jede Zustellung wird protokolliert: der gesendete Request, der Response-Statuscode, ein Auszug des Response-Bodys und die Dauer. Die Einträge werden 30 Tage aufbewahrt. Lesen Sie sie und wiederholen Sie jede Zustellung im Dashboard oder über die API.

Mehrere Endpunkte pro Monitor

Senden Sie dasselbe Ereignis an mehrere Endpunkte: einen Alert gleichzeitig an einen PagerDuty-Webhook und einen eigenen Audit-Log-Service weiterleiten.

Zuverlässige Zustellung

Wiederholungen, damit Sie
kein Ereignis verpassen.

Wenn Ihr Endpunkt nicht erreichbar ist oder einen 5xx zurückgibt, wiederholt Site Qwality 10 Sekunden, 30 Sekunden, 2 Minuten, 8 Minuten und 30 Minuten nach dem ersten Versuch. Ein 4xx wird nicht wiederholt: Gibt Ihr Endpunkt 404 zurück, sagen wir es Ihnen, statt denselben Request fünfmal erneut zu senden. Jeder Versuch wird mit dem HTTP-Status protokolliert.

  • Der erste Versuch, dann bis zu fünf Wiederholungen mit exponentiellem Backoff
  • Jeder Versuch protokolliert mit Statuscode und einem Auszug des Response-Bodys
  • Jede frühere Zustellung im Dashboard oder über die API wiederholen
app.siteqwality.com / webhooks / deliveries
POST /hooks/incident-tool DeliveredLIVE
ATTEMPTS2
FINAL STATUS200
SIGNEDv1
attempt 1timeout
attempt 2200 OK
payload size1.4 KB
signatureHMAC-SHA256
Vollständiger Ereignis-Payload

Jedes Feld, das Ihre
Integration braucht.

Jede Zustellung trägt einen Umschlag mit Zustellungs-ID, Ereignisname, Schweregrad, Zeitstempel und Ihrer Konto-ID. Bei einem HTTP-Monitor steht das Prüfergebnis unter data: Monitor-ID, Status, geprüfte URL, HTTP-Code, Fehlergrund und die phasenweise Zeitmessung. Der HTTP-Payload enthält die Monitor-ID, nicht den Namen. Andere Ereignistypen haben eigene data-Felder.

  • Monitor-ID, Status, URL, HTTP-Code und Fehlergrund in einem Payload
  • Zeitstempel im Format RFC 3339 im Umschlag
  • Eigene Schlüssel-Wert-Metadaten pro Endpunkt
example payload{
  "id": "6ddbec4d-0b7e-4c1a-8f52-3e9d1a7c2b40",
  "event": "monitor.down",
  "severity": "critical",
  "created_at": "2026-03-14T09:26:54.218Z",
  "account_id": "2f6b9e14-7c3d-4a58-b1e0-94d2c7a3f615",
  "data": {
    "http_job_id": "8f1c3a92-5d47-4e1b-9c60-2ab7d5f80e31",
    "status": "failed",
    "request_uri": "https://api.acme.com/checkout",
    "response_http_code": 503,
    "failure_reason": "status",
    "check_region": "aws-us-east-1",
    "request_duration_ms": 184,
    "ttfb_ms": 171,
    "created_at": "2026-03-14T09:26:53.104Z",
    …
  }
}
Eine Zustellung prüfen

Die signierte Zeichenkette
und wie Sie sie prüfen.

Die Signatur deckt {delivery_id}.{timestamp}.{raw request body} ab, nicht nur den Body. ID und Zeitstempel kommen als Header, und beide stecken im MAC: die ID, weil sie Ihr Schlüssel zur Deduplizierung ist, der Zeitstempel, weil eine Signatur ohne ihn für immer wiederverwendbar wäre. Prüfen Sie das Alter vor dem MAC und vergleichen Sie in konstanter Zeit.

  • Die exakten gesendeten Bytes signieren, vor jedem JSON-Parsing
  • Das Secret unverändert verwenden: kein Base64-Decoding, kein Entfernen von Präfixen
  • Nach einer Secret-Rotation 24 Stunden lang zwei durch Leerzeichen getrennte Einträge erwarten
verify.js// rawBody must be the exact bytes we sent, before JSON.parse.
const id   = req.headers['x-siteqwality-delivery'];
const ts   = req.headers['x-siteqwality-timestamp'];
const sigs = req.headers['x-siteqwality-signature'].split(' ');

// Reject a stale delivery BEFORE checking the MAC.
if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return reject();

const expected = 'v1=' + crypto
  .createHmac('sha256', secret)
  .update(`${id}.${ts}.${rawBody}`)
  .digest('hex');

// Two entries for 24h after a rotation. Constant time.
const ok = sigs.some(s => s.length === expected.length &&
  crypto.timingSafeEqual(Buffer.from(s), Buffer.from(expected)));
5

Wiederholungen, bevor eine Zustellung als fehlgeschlagen gilt

$0

Webhooks in jedem Plan, auch im kostenlosen

30d

jede Zustellung protokolliert, mit vollständigem Request und Auszug der Response

15s

Timeout pro Zustellversuch, danach geben wir diesen Versuch auf

FAQ

Die signierte Zeichenkette ist {delivery_id}.{timestamp}.{raw request body}, mit Punkten verbunden, und der Header-Wert ist v1= gefolgt vom hexadezimalen HMAC-SHA256 dieser Zeichenkette mit dem Signatur-Secret Ihres Endpunkts. Das Secret wird genau so verwendet, wie es Ihnen angezeigt wird, ohne Base64-Decoding und ohne Entfernen von Präfixen. Zustellungs-ID und Zeitstempel kommen in X-SiteQwality-Delivery und X-SiteQwality-Timestamp, und beide stecken im MAC. Eine Signatur nur über den Body ließe eine abgefangene Zustellung wiederverwendbar. Prüfen Sie vor dem MAC, ob der Zeitstempel höchstens fünf Minuten alt ist, und erwarten Sie in den 24 Stunden nach einer Secret-Rotation mehr als einen durch Leerzeichen getrennten v1=-Eintrag. Das Snippet über diesen FAQ erledigt all das.

Fünfzehn Ereignisse: monitor.down, monitor.recover, incident.created, incident.resolved, tls.expiring, dns.expiring, dns.record_change, page_speed.degraded, alert.firing, alert.resolved und fünf Ereignisse aus dem Real User Monitoring: rum.issue.created, rum.issue.regressed, rum.issue.escalating, rum.alert.firing und rum.alert.resolved. Alle sind standardmäßig aktiv, und Sie können sie pro Endpunkt nach Ereignis oder Mindest-Schweregrad filtern, sodass ein Empfänger nur verarbeitet, was er braucht. Die Form von data hängt vom Ereignistyp ab. Die beiden Incident-Ereignisse gehen an Webhook-Ziele, die an einem Service eingestellt sind; diese Zustellungen sind nicht signiert und erscheinen nicht im Zustellprotokoll.

Site Qwality wiederholt 10 Sekunden, 30 Sekunden, 2 Minuten, 8 Minuten und 30 Minuten nach dem ersten Versuch. Das sind Abstände zum ersten Versuch, nicht zwischen den Wiederholungen: Die letzte kommt genau nach 30 Minuten. Das sind höchstens sechs Zustellungen, der erste Versuch plus fünf Wiederholungen, und eine Zustellung, die 30 Minuten nach dem ersten Versuch nicht erfolgreich war, wird als fehlgeschlagen markiert. Danach können Sie sie aus dem Zustellprotokoll erneut senden.

Ja, aus dem Zustellprotokoll im Dashboard oder über die API. Das Zustellprotokoll enthält 30 Tage lang jeden Versuch mit dem gesendeten Request, dem Response-Statuscode, einem Auszug des Response-Bodys und der Dauer. Eine Wiederholung sendet den gespeicherten Body erneut, mit neuem X-SiteQwality-Delivery-Header, frischem Zeitstempel und frischer Signatur mit Ihrem aktuellen Secret. Die id im Body bleibt die ursprüngliche; gesendet wird also, was damals gesendet wurde, nicht, was die heutigen Einstellungen erzeugen würden.

Ja. Webhooks sind in jedem Plan enthalten, auch im kostenlosen.

Kostenlos starten. Keine Kreditkarte.

Uptime, Cron, Synthetic, Logs, RUM, Incidents und Statusseiten. Kostenlose Stufe bei jedem Produkt.