Documentatie API
API REST pentru gestionarea monitoarelor si citirea notificarilor, cu o cheie API creata in dashboard. Limitele de monitoare, intervale si canale sunt cele ale planului tau.
Autentificare
Toate request-urile necesita header-ul Authorization: Bearer. Poti folosi o cheie API (recomandat, vezi sectiunea de mai jos) sau token-ul de sesiune primit la login. Daca ai activat autentificarea in doi pasi, login-ul cere si codul, deci pentru scripturi foloseste o cheie API.
Authorization: Bearer <token>
curl -X POST https://omniwatchguard.com/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "email@exemplu.com", "password": "parola_ta"}'{"token": "eyJhbGciOiJIUzI1NiJ9...", "user": {"id": 1, "plan": "pro"}}Chei API
Cheile se creeaza in dashboard, la API Keys. O cheie incepe cu owg_live_ si este afisata o singura data, la creare. Poti avea cel mult 5 chei pe cont.
Authorization: Bearer owg_live_...
Cheile API functioneaza pe endpoint-urile /api/monitors (inclusiv /api/monitors/ID si /api/monitors/changes) si /api/notifications. Celelalte endpoint-uri, inclusiv /api/export, accepta doar token-ul de sesiune de la login.
Returneaza lista tuturor monitoarelor active din contul tau.
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://exemplu.com", "name": "Monitor test",
"type": "text", "frequency": 60, "status": "active",
"notify_email": 1, "notify_slack": null, "created_at": "2026-03-01T12:00:00Z"}]Creeaza un monitor nou.
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
| url | string | Da | URL-ul paginii de monitorizat |
| name | string | Nu | Numele monitorului |
| type | string | Nu | text | price | stock | css | api | seo | ssl; cu add-on platit: tech_stack | whois |
| frequency | integer | Nu | Minute. Starter si Trial: 60. Pro: 15, 30, 60. Agency: 5, 15, 30, 60. Implicit 60; o valoare care nu e in plan este inlocuita cu 60. |
| notify_email | integer | Nu | 1 = activ, 0 = inactiv |
| notify_slack | string | Nu | URL webhook Slack |
| notify_discord | string | Nu | URL webhook Discord |
| notify_telegram | string | Nu | Chat ID Telegram |
| notify_webhook | string | Nu | URL webhook custom |
| selector | string | Nu | Selector CSS, pentru tipul css |
| auth_cookie | string | Nu | Cookie sau token de sesiune pentru pagini cu login (plan Agency) |
curl -X POST https://omniwatchguard.com/api/monitors \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"url": "https://exemplu.com/preturi", "type": "price", "frequency": 15}'{"success": true, "id": 42}Actualizeaza un monitor existent. Trimite doar campurile pe care vrei sa le modifici.
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}Sterge un monitor. Actiunea este ireversibila.
curl -X DELETE https://omniwatchguard.com/api/monitors/42 \ -H "Authorization: Bearer <token>"
{"success": true}Returneaza ultimele schimbari detectate. Parametru optional: ?limit=20 (implicit 10, max 50).
curl "https://omniwatchguard.com/api/monitors/changes?limit=20" \ -H "Authorization: Bearer <token>"
[{"id": 1, "url": "https://exemplu.com", "name": "Monitor test", "type": "price",
"ai_summary": "Pretul a scazut de la 99 RON la 79 RON (-20%).",
"ai_severity": "major", "detected_at": "2026-03-24T09:15:00Z"}]Exporta datele in format CSV. Parametri: type=monitors|incidents, optional monitor_id. Acest endpoint accepta doar token-ul de sesiune de la login, nu chei API.
curl "https://omniwatchguard.com/api/export?type=monitors" \ -H "Authorization: Bearer <token>" -o monitoare.csv
curl "https://omniwatchguard.com/api/export?type=incidents&monitor_id=42" \ -H "Authorization: Bearer <token>" -o incidente.csv
Returneaza ultimele 100 de notificari trimise. Parametru optional: ?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://exemplu.com"}]Coduri de eroare
| Cod HTTP | Semnificatie |
|---|---|
| 200 | Succes |
| 201 | Monitor creat |
| 400 | Request invalid |
| 401 | Neautorizat - token lipsa sau expirat |
| 403 | Acces interzis - limita de monitoare atinsa, canal sau interval neinclus in plan |
| 404 | Resursa negasita |
| 429 | Prea multe cereri - vezi header-ul Retry-After |
| 500 | Eroare interna server |
{"error": "Descrierea erorii"}Limite
| Plan | Monitoare | Intervale (minute) | Canale de alerta |
|---|---|---|---|
| Trial | 3 | 60 | email, webhook, Slack, Discord, Telegram |
| Starter | 10 | 60 | |
| Pro | 100 | 15, 30, 60 | email, webhook, Slack |
| Agency | nelimitat | 5, 15, 30, 60 | email, webhook, Slack, Discord, Telegram |
Endpoint-urile /api/monitors si /api/notifications nu au o limita generala de cereri. Sunt limitate pe adresa IP: POST /api/auth/login la 10 cereri in 15 minute si POST /api/monitors/preview la 20 de cereri pe ora. La depasire primesti 429 cu header-ul Retry-After (secunde).
⚡ Integrare Zapier & Make
OmniWatchGuard se conecteaza cu Zapier, Make (Integromat) si alte platforme de automatizare prin Webhook custom (planurile Pro si Agency). Lipesti URL-ul webhook-ului la crearea monitorului.
Zapier
5000+ appsConecteaza alertele OmniWatchGuard cu Gmail, Slack, Google Sheets, Notion, Airtable, Trello si alte 5000+ aplicatii.
In Zapier, alege Trigger: Webhooks by Zapier - Catch Hook
Zapier genereaza un URL de forma https://hooks.zapier.com/hooks/catch/...
La crearea monitorului, in sectiunea Webhook custom, lipeste URL-ul Zapier.
Asteapta prima detectie sau testeaza din dashboard. Zapier va primi datele automat.
Make (Integromat)
1500+ appsAutomatizeaza fluxuri complexe cu Make - trimite alerte in WhatsApp, actualizeaza spreadsheet-uri, creeaza taskuri in Jira sau notifica echipa.
In Make, adauga un modul Webhooks - Custom Webhook ca trigger.
Make genereaza un URL de forma https://hook.eu1.make.com/...
La crearea monitorului, in sectiunea Webhook custom, lipeste URL-ul Make.
Trimite un test - Make va detecta automat structura JSON si o va pune la dispozitie in scenariu.
Exemple de automatizari populare
Cand pretul scade - notificare Slack + inregistrare in Google Sheets
Cand produsul intra in stoc - email automat catre clienti sau SMS via Twilio
Cand pagina unui competitor se modifica - task nou in Trello sau Notion
Cand SSL expira in 14 zile - ticket automat in Jira + email catre dev team
Cand title sau meta description se schimba - notificare in Microsoft Teams
La orice schimbare - inregistrare in Airtable pentru rapoarte saptamanale
Webhook Payload
La fiecare schimbare majora sau critica, OmniWatchGuard trimite un request POST cu Content-Type: application/json catre URL-ul tau. Schimbarile minore sunt doar inregistrate in dashboard.
{
"event": "change_detected",
"monitor_id": 42,
"monitor_name": "Preturi competitor A",
"url": "https://competitor.com/produs",
"type": "price",
"summary": "Pretul a scazut de la 552 RON la 489 RON (-11%)",
"severity": "major",
"detected_at": "2026-04-29T10:23:45.000Z"
}{
"event": "ssl_expiry_warning",
"monitor_id": 15,
"monitor_name": "SSL Monitor - site.ro",
"url": "https://site.ro",
"hostname": "site.ro",
"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"
}Campuri disponibile
| Camp | Tip | Descriere |
|---|---|---|
| event | string | change_detected sau ssl_expiry_warning |
| monitor_id | integer | ID-ul monitorului in OmniWatchGuard |
| monitor_name | string | Numele dat monitorului |
| url | string | URL-ul monitorizat |
| type | string | Tipul: text, price, stock, seo, ssl, css, api |
| summary | string | Rezumat AI al schimbarii detectate |
| severity | string | minor, major sau critical |
| detected_at | string | Data si ora detectiei in format ISO 8601 |
Foloseste campul severity ca filtru - trimite email doar daca severity = critical. In Make poti construi logica conditionala complexa bazata pe type si severity.
