Unsparing Docs

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

  1. Navigate to DNS → Watchers and click Add Watcher
  2. Configure the watcher:
FieldDescription
DomainThe domain to monitor (e.g., example.com)
Record TypeA, AAAA, MX, CNAME, TXT, NS
Expected ValueThe expected record value
Check IntervalHow often to check (1 min, 5 min, 15 min, 1 hour)
ResolversWhich 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

AlertTrigger
Record changedThe resolved value differs from expected
Record missingExpected record returns NXDOMAIN
Propagation incompleteRecord not yet visible on all resolvers
Record appearedNew record detected (unexpected)

Supported Record Types

TypeWhat It Tracks
AIPv4 addresses
AAAAIPv6 addresses
CNAMECanonical names / aliases
MXMail exchange records
TXTText records (SPF, DKIM, etc.)
NSName 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/watchers

Create 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/watchers

Plan Limits

PlanDNS Watchers
Free2
HomelabberUnlimited
TeamsUnlimited
AgencyUnlimited

SSL Monitoring · API Reference

On this page