API-Dokumentation
REST-API zur Verwaltung von Monitoren und zum Lesen von Benachrichtigungen, mit einem im Dashboard erstellten API-Schlüssel. Die Limits für Monitore, Intervalle und Kanäle entsprechen Ihrem Tarif.
Authentifizierung
Alle Anfragen benötigen den Header Authorization: Bearer. Sie können einen API-Schlüssel verwenden (empfohlen, siehe Abschnitt unten) oder das Sitzungs-Token, das die Anmeldung zurückgibt. Ist die Zwei-Faktor-Authentifizierung aktiv, verlangt die Anmeldung zusätzlich den Code. Verwenden Sie für Skripte daher einen API-Schlüssel.
Authorization: Bearer <token>
curl -X POST https://omniwatchguard.com/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "email@example.com", "password": "your_password"}'{"token": "eyJhbGciOiJIUzI1NiJ9...", "user": {"id": 1, "plan": "pro"}}API-Schlüssel
Schlüssel werden im Dashboard unter API Keys erstellt. Ein Schlüssel beginnt mit owg_live_ und wird nur einmal angezeigt, bei der Erstellung. Pro Konto sind höchstens 5 Schlüssel möglich.
Authorization: Bearer owg_live_...
API-Schlüssel funktionieren auf den Endpunkten /api/monitors (einschließlich /api/monitors/ID und /api/monitors/changes) und /api/notifications. Andere Endpunkte, darunter /api/export, akzeptieren nur das Sitzungs-Token aus der Anmeldung.
Gibt die Liste aller aktiven Monitore Ihres Kontos zurück.
curl https://omniwatchguard.com/api/monitors \ -H "Authorization: Bearer <token>"
const res = await fetch("https://omniwatchguard.com/api/monitors", {
headers: { Authorization: `Bearer ${token}` }
});
const monitors = await res.json();[{"id": 1, "url": "https://example.com", "name": "Test monitor",
"type": "text", "frequency": 60, "status": "active",
"notify_email": 1, "notify_slack": null, "created_at": "2026-03-01T12:00:00Z"}]Erstellt einen neuen Monitor.
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | Ja | URL der zu überwachenden Seite |
| name | string | Nein | Name des Monitors |
| type | string | Nein | text | price | stock | css | api | seo | ssl; mit kostenpflichtigem Add-on: tech_stack | whois |
| frequency | integer | Nein | Minuten. Starter und Testphase: 60. Pro: 15, 30, 60. Agency: 5, 15, 30, 60. Standard 60; ein Wert außerhalb des Tarifs wird durch 60 ersetzt. |
| notify_email | integer | Nein | 1 = aktiv, 0 = inaktiv |
| notify_slack | string | Nein | Slack-Webhook-URL |
| notify_discord | string | Nein | Discord-Webhook-URL |
| notify_telegram | string | Nein | Telegram-Chat-ID |
| notify_webhook | string | Nein | Benutzerdefinierte Webhook-URL |
| selector | string | Nein | CSS-Selektor, für den Typ css |
| auth_cookie | string | Nein | Sitzungs-Cookie oder -Token für Seiten mit Login (Agency-Tarif) |
curl -X POST https://omniwatchguard.com/api/monitors \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/prices", "type": "price", "frequency": 15}'{"success": true, "id": 42}Aktualisiert einen bestehenden Monitor. Senden Sie nur die Felder, die Sie ändern möchten.
curl -X PATCH https://omniwatchguard.com/api/monitors/42 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"frequency": 5, "notify_slack": "https://hooks.slack.com/..."}'{"success": true}Löscht einen Monitor. Diese Aktion ist unwiderruflich.
curl -X DELETE https://omniwatchguard.com/api/monitors/42 \ -H "Authorization: Bearer <token>"
{"success": true}Gibt die zuletzt erkannten Änderungen zurück. Optionaler Parameter: ?limit=20 (Standard 10, max. 50).
curl "https://omniwatchguard.com/api/monitors/changes?limit=20" \ -H "Authorization: Bearer <token>"
[{"id": 1, "url": "https://example.com", "name": "Monitor test", "type": "price",
"ai_summary": "Price dropped from $99 to $79.",
"ai_severity": "major", "detected_at": "2026-03-24T09:15:00Z"}]Exportiert Daten im CSV-Format. Parameter: type=monitors|incidents, optional monitor_id. Dieser Endpunkt akzeptiert nur das Sitzungs-Token aus der Anmeldung, keine API-Schlüssel.
curl "https://omniwatchguard.com/api/export?type=monitors" \ -H "Authorization: Bearer <token>" -o monitors.csv
curl "https://omniwatchguard.com/api/export?type=incidents&monitor_id=42" \ -H "Authorization: Bearer <token>" -o incidents.csv
Gibt die letzten 100 gesendeten Benachrichtigungen zurück. Optionaler Parameter: ?type=email|slack|discord|telegram|webhook.
curl https://omniwatchguard.com/api/notifications \ -H "Authorization: Bearer <token>"
[{"id": 1, "type": "email", "success": 1, "error": null,
"sent_at": "2026-03-24T09:15:00Z", "url": "https://example.com"}]Fehlercodes
| HTTP-Code | Bedeutung |
|---|---|
| 200 | Erfolg |
| 201 | Monitor erstellt |
| 400 | Ungültige Anfrage |
| 401 | Nicht autorisiert - Token fehlt oder abgelaufen |
| 403 | Zugriff verweigert - Monitor-Limit erreicht, Kanal oder Intervall nicht im Tarif enthalten |
| 404 | Ressource nicht gefunden |
| 429 | Zu viele Anfragen - siehe Header Retry-After |
| 500 | Interner Serverfehler |
{"error": "Error description"}Limits
| Plan | Monitore | Intervalle (Minuten) | Benachrichtigungskanäle |
|---|---|---|---|
| Trial | 3 | 60 | email, webhook, Slack, Discord, Telegram |
| Starter | 10 | 60 | |
| Pro | 100 | 15, 30, 60 | email, webhook, Slack |
| Agency | unbegrenzt | 5, 15, 30, 60 | email, webhook, Slack, Discord, Telegram |
Die Endpunkte /api/monitors und /api/notifications haben kein allgemeines Anfragelimit. Pro IP-Adresse begrenzt sind: POST /api/auth/login auf 10 Anfragen pro 15 Minuten und POST /api/monitors/preview auf 20 Anfragen pro Stunde. Bei Überschreitung erhalten Sie 429 mit dem Header Retry-After (Sekunden).
⚡ Zapier & Make Integration
OmniWatchGuard verbindet sich mit Zapier, Make (Integromat) und anderen Automatisierungsplattformen über einen Custom Webhook (Tarife Pro und Agency). Sie fügen die Webhook-URL beim Anlegen des Monitors ein.
Zapier
5000+ AppsVerbinden Sie OmniWatchGuard-Benachrichtigungen mit Gmail, Slack, Google Sheets, Notion, Airtable, Trello und über 5000 weiteren Apps.
Wählen Sie in Zapier Trigger: Webhooks by Zapier → Catch Hook
Zapier generiert eine URL wie https://hooks.zapier.com/hooks/catch/...
Fügen Sie beim Erstellen eines Monitors im Abschnitt Custom Webhook die Zapier-URL ein.
Warten Sie auf die erste Erkennung oder testen Sie vom Dashboard aus. Zapier empfängt Daten automatisch.
Make (Integromat)
1500+ AppsAutomatisieren Sie komplexe Workflows mit Make - senden Sie Benachrichtigungen an WhatsApp, aktualisieren Sie Tabellen, erstellen Sie Jira-Tickets oder benachrichtigen Sie Ihr Team.
Fügen Sie in Make ein Modul Webhooks → Custom Webhook als Trigger hinzu.
Make generiert eine URL wie https://hook.eu1.make.com/...
Fügen Sie beim Erstellen eines Monitors im Abschnitt Custom Webhook die Make-URL ein.
Senden Sie einen Test - Make erkennt automatisch die JSON-Struktur und stellt sie in Ihrem Szenario zur Verfügung.
Beliebte Automatisierungsbeispiele
Bei Preissenkung - Slack-Benachrichtigung + Eintrag in Google Sheets
Bei Wiederverfügbarkeit - automatische E-Mail an Kunden oder SMS über Twilio
Bei Änderung einer Konkurrenzseite - neue Aufgabe in Trello oder Notion
Wenn SSL in 14 Tagen abläuft - automatisches Ticket in Jira + E-Mail an das Dev-Team
Bei Änderung von Title oder Meta-Description - Benachrichtigung in Microsoft Teams
Bei jeder Änderung - Eintrag in Airtable für wöchentliche Berichte
Webhook Payload
Bei jeder wichtigen oder kritischen Änderung sendet OmniWatchGuard eine POST-Anfrage mit Content-Type: application/json an Ihre URL. Geringfügige Änderungen werden nur im Dashboard erfasst.
{
"event": "change_detected",
"monitor_id": 42,
"monitor_name": "Competitor A prices",
"url": "https://competitor.com/product",
"type": "price",
"summary": "Price dropped from 149.99 to 129.99 (-13%)",
"severity": "major",
"detected_at": "2026-04-29T10:23:45.000Z"
}{
"event": "ssl_expiry_warning",
"monitor_id": 15,
"monitor_name": "SSL Monitor - site.com",
"url": "https://site.com",
"hostname": "site.com",
"ssl_days_left": 12,
"ssl_expires_at": "2026-05-11T00:00:00.000Z",
"ssl_issuer": "Lets Encrypt",
"ssl_error": null,
"detected_at": "2026-04-29T06:00:00.000Z"
}Verfügbare Felder
| Feld | Typ | Beschreibung |
|---|---|---|
| event | string | change_detected oder ssl_expiry_warning |
| monitor_id | integer | Monitor-ID in OmniWatchGuard |
| monitor_name | string | Dem Monitor gegebener Name |
| url | string | Überwachte URL |
| type | string | Monitor-Typ: text, price, stock, seo, ssl, css, api |
| summary | string | KI-Zusammenfassung der erkannten Änderung |
| severity | string | minor, major oder critical |
| detected_at | string | Erkennungsdatum und -uhrzeit im ISO-8601-Format |
Verwenden Sie das Feld severity als Filter - senden Sie eine E-Mail nur, wenn severity = critical. In Make können Sie komplexe bedingte Logik basierend auf type und severity erstellen.
