Monitoring systems: Prometheus, Grafana, Zabbix, Checkmk, PRTG
If you already run a monitoring system, pull the state of your domains from DomainWarn into it instead of maintaining two dashboards. The API exposes one endpoint per organization in Prometheus text format: GET /api/v1/orgs/<slug>/metrics, requested with a read token in the Authorization: Bearer header. Under Settings → API, "Create Prometheus access" creates the token and shows the ready-made scrape configuration.
Every domain appears with the labels domain and customer, every monitor additionally with type (http, tls, dns, mx …) and target. Metrics: domainwarn_domain_health_code (0 healthy, 1 warning, 2 critical, 3 unknown), domainwarn_monitor_status_code (0 ok … 3 unknown), domainwarn_monitor_uptime_ratio_24h (0 to 1), domainwarn_monitor_latency_seconds, domainwarn_certificate_expires_in_seconds, domainwarn_domain_expires_in_seconds, domainwarn_incidents_open per severity, domainwarn_domain_paused and domainwarn_domains_total per state. At most 30 requests per minute; Prometheus usually scrapes every 60 seconds.
scrape_configs:
- job_name: domainwarn
scheme: https
metrics_path: /api/v1/orgs/<slug>/metrics
scrape_interval: 60s
static_configs: [{ targets: ['api.domainwarn.com'] }]
authorization: { credentials: '<TOKEN>' }Grafana: add Prometheus as a data source, then e.g. domainwarn_domain_health_code > 0 as a table per domain, domainwarn_certificate_expires_in_seconds / 86400 < 14 as an alert for certificates about to expire, 1 - domainwarn_monitor_uptime_ratio_24h{type="http"} as the outage rate. Alertmanager rules work with the same expressions.
Zabbix: an HTTP agent item with the metrics URL, header Authorization: Bearer <TOKEN>, type "Prometheus", plus dependent items with a Prometheus pattern such as domainwarn_domain_health_code{domain="customer.example"}. A low-level discovery on domainwarn_domain_info creates items per domain automatically.
Checkmk: the "Prometheus" special agent with the metrics URL and the token, or the HTTP check check_http for domainwarn_domains_total{health="critical"} 0. PRTG: the "HTTP Data Advanced" sensor or a REST custom sensor that requests the text; Uptime Kuma: an "HTTP – Keyword" monitor on the metrics URL with the keyword domainwarn_domains_total{health="critical"} 0.
The endpoint only exposes states and metrics, no findings or credentials. Client access only sees the domains of its own client; a revoked token immediately returns 401.
See also: API documentation