OmniWatchGuard logo OmniWatch Guard

API Documentation

Complete REST API for managing monitors, reading alerts and exporting data. Available from the Pro plan.

REST API JSON Bearer Token

Authentication

All requests require a JWT token in the Authorization header. You get the token after login.

Header
Authorization: Bearer <token>
curl - Login
curl -X POST https://omniwatchguard.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]", "password": "your_password"}'
Response
{"token": "eyJhbGciOiJIUzI1NiJ9...", "user": {"id": 1, "plan": "pro"}}
GET /api/monitors

Returns the list of all active monitors for your account.

curl
curl https://omniwatchguard.com/api/monitors \
  -H "Authorization: Bearer <token>"
JavaScript
const res = await fetch("https://omniwatchguard.com/api/monitors", {
  headers: { Authorization: `Bearer ${token}` }
});
const monitors = await res.json();
Response
[{"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"}]
POST /api/monitors

Creates a new monitor.

ParameterTypeRequiredDescription
urlstringYesURL of the page to monitor
namestringNoMonitor name
typestringNotext | price | stock | visual | css | api | seo | ssl
frequencyintegerNo5, 15, 30, 60 minutes (default 60)
notify_emailintegerNo1 = active, 0 = inactive
notify_slackstringNoSlack webhook URL
notify_discordstringNoDiscord webhook URL
notify_telegramstringNoTelegram Chat ID
notify_webhookstringNoCustom webhook URL
curl
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}'
Response
{"success": true, "id": 42}
PATCH /api/monitors/{id}

Updates an existing monitor. Send only the fields you want to change.

curl
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/..."}'
Response
{"success": true}
DELETE /api/monitors/{id}

Deletes a monitor. This action is irreversible.

curl
curl -X DELETE https://omniwatchguard.com/api/monitors/42 \
  -H "Authorization: Bearer <token>"
Response
{"success": true}
GET /api/monitors/changes

Returns the latest detected changes. Optional parameter: ?limit=20 (default 10, max 100).

curl
curl "https://omniwatchguard.com/api/monitors/changes?limit=20" \
  -H "Authorization: Bearer <token>"
Response
[{"id": 1, "monitor_id": 42, "url": "https://example.com",
  "ai_summary": "Price dropped from $99 to $79.",
  "ai_severity": "major", "detected_at": "2026-03-24T09:15:00Z"}]
GET /api/export

Exports data in CSV format. Parameters: type=monitors|incidents, optional monitor_id.

curl - Export monitors
curl "https://omniwatchguard.com/api/export?type=monitors" \
  -H "Authorization: Bearer <token>" -o monitors.csv
curl - Export incidents
curl "https://omniwatchguard.com/api/export?type=incidents&monitor_id=42" \
  -H "Authorization: Bearer <token>" -o incidents.csv
GET /api/notifications

Returns the history of the last 50 sent notifications.

curl
curl https://omniwatchguard.com/api/notifications \
  -H "Authorization: Bearer <token>"
Response
[{"id": 1, "type": "email", "success": 1, "error": null,
  "sent_at": "2026-03-24T09:15:00Z", "url": "https://example.com"}]

Error codes

HTTP CodeMeaning
200Success
400Invalid request
401Unauthorized - token missing or expired
403Forbidden
404Resource not found
500Internal server error
Error format
{"error": "Error description"}

⚡ Zapier & Make Integration

OmniWatchGuard connects natively with Zapier, Make (Integromat) and any automation platform via Custom Webhook. No code needed - connect in 2 minutes.

Zapier

5000+ apps

Connect OmniWatchGuard alerts with Gmail, Slack, Google Sheets, Notion, Airtable, Trello and 5000+ other apps.

1
Create a new Zap

In Zapier, choose Trigger: Webhooks by Zapier → Catch Hook

2
Copy the webhook URL

Zapier generates a URL like https://hooks.zapier.com/hooks/catch/...

3
Add to OmniWatchGuard

When creating a monitor, in the Custom Webhook section, paste the Zapier URL.

4
Test and activate

Wait for the first detection or test from dashboard. Zapier receives data automatically.

🔄

Make (Integromat)

1500+ apps

Automate complex workflows with Make - send alerts to WhatsApp, update spreadsheets, create Jira tickets or notify your team.

1
Create a new Scenario

In Make, add a Webhooks → Custom Webhook module as trigger.

2
Copy the URL

Make generates a URL like https://hook.eu1.make.com/...

3
Add to OmniWatchGuard

When creating a monitor, in the Custom Webhook section, paste the Make URL.

4
Determine structure

Send a test - Make automatically detects the JSON structure and makes it available in your scenario.

Popular automation examples

📈Competitor price monitoring

When price drops - Slack notification + record in Google Sheets

🛒Stock alert

When back in stock - automatic email to customers or SMS via Twilio

📝Content monitoring

When competitor page changes - new task in Trello or Notion

🔒SSL alert

When SSL expires in 14 days - automatic ticket in Jira + email to dev team

🔍SEO Monitor

When title or meta description changes - notification in Microsoft Teams

📊Automatic reporting

On any change - record in Airtable for weekly reports

Webhook Payload

On every detected change, OmniWatchGuard sends a POST request with Content-Type: application/json to your URL.

JSON Payload - Change detected
{
  "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"
}
JSON Payload - SSL expiry warning
{
  "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"
}

Available fields

FieldTypeDescription
eventstringchange_detected or ssl_expiry_warning
monitor_idintegerMonitor ID in OmniWatchGuard
monitor_namestringName given to the monitor
urlstringMonitored URL
typestringMonitor type: text, price, stock, seo, ssl, css, api, visual
summarystringAI summary of the detected change
severitystringminor, major or critical
detected_atstringDetection date and time in ISO 8601 format
💡
Tip for Zapier/Make

Use the severity field as a filter - send email only if severity = critical. In Make you can build complex conditional logic based on type and severity.

Incearca gratuit 24h
OWG
OmniWatchGuard
Online · Raspunde instant