DNS Monitoring
Monitor DNS records for unexpected changes, track propagation across resolvers, and detect hijacking early.
How DNS Monitoring Works
Unsparing periodically queries DNS resolvers for your records and compares the results against your expected values. If a record changes, disappears, or doesn't propagate correctly, you get an alert.
Adding a DNS Watcher
- Navigate to DNS → Watchers and click Add Watcher
- Configure the watcher:
| Field | Description |
|---|---|
| Domain | The domain to monitor (e.g., example.com) |
| Record Type | A, AAAA, MX, CNAME, TXT, NS |
| Expected Value | The expected record value |
| Check Interval | How often to check (1 min, 5 min, 15 min, 1 hour) |
| Resolvers | Which DNS resolvers to query (default: multiple) |
What Gets Monitored
Record Changes
If an A record pointing to 1.2.3.4 suddenly resolves to 5.6.7.8, Unsparing alerts you immediately. This catches:
- Accidental DNS changes
- Hijacking attempts
- Stale records from failed migrations
- TTL expiry pointing to wrong IPs
Propagation Delays
Unsparing checks multiple resolvers across different regions. If your new record hasn't propagated to all resolvers within the expected window, you'll know.
Missing Records
If a record that should exist returns NXDOMAIN, that's an alert. Common causes:
- Accidental deletion
- Registrar issues
- DNS zone file corruption
Alert Types
| Alert | Trigger |
|---|---|
| Record changed | The resolved value differs from expected |
| Record missing | Expected record returns NXDOMAIN |
| Propagation incomplete | Record not yet visible on all resolvers |
| Record appeared | New record detected (unexpected) |
Supported Record Types
| Type | What It Tracks |
|---|---|
| A | IPv4 addresses |
| AAAA | IPv6 addresses |
| CNAME | Canonical names / aliases |
| MX | Mail exchange records |
| TXT | Text records (SPF, DKIM, etc.) |
| NS | Name server records |
Multi-Resolver Checks
Unsparing queries multiple public resolvers for each check:
- Google DNS (8.8.8.8)
- Cloudflare DNS (1.1.1.1)
- Quad9 (9.9.9.9)
- OpenDNS (208.67.222.222)
This ensures you get accurate propagation status, not just "it works from my machine."
API Endpoints
List DNS Watchers
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.unsparing.dev/api/v1/dns/watchersCreate a DNS Watcher
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domain": "example.com",
"record_type": "A",
"expected_value": "1.2.3.4",
"check_interval": 300
}' \
https://api.unsparing.dev/api/v1/dns/watchersPlan Limits
| Plan | DNS Watchers |
|---|---|
| Free | 2 |
| Homelabber | Unlimited |
| Teams | Unlimited |
| Agency | Unlimited |