Domains
Get alerted before a domain registration runs out, and check that your DNS records resolve to the values you expect.
Two monitor types cover domains. A Domain expiry monitor reads the domain's WHOIS record and warns you ahead of its expiry date. A DNS records monitor looks up records such as A, MX or TXT and checks what they return.
How expiry is looked up
On every check, Zharp queries WHOIS directly, over port 43:
- It asks
whois.iana.orgwhich registry is responsible for the domain's extension. - It asks that registry's WHOIS server for the domain.
- If the registry points to the registrar's own WHOIS server, it asks there too, and uses that answer when it contains an expiry date. Otherwise it keeps the registry's answer.
From the record it reads the expiry date, and where present the creation and last-updated dates, the registrar, the nameservers, the DNSSEC state and the domain status codes. Days left are counted in whole days, rounded up.
Create a domain expiry monitor
- 1Choose the type
On the Monitors page, click New, open the type picker and choose Domain expiry monitor.
- 2Enter the domain
Fill in Domain name with the registered domain, such as
example.com. Use the name you pay a registrar for, not a subdomain likewww.example.com. - 3Choose the warning period
Open Advanced settings. Under Expiry settings, set Alert before expiry to 7, 14, 30, 60 or 90 days (default 30), and Alert on registrar change to Yes (default) or No. Then click Create monitor. A domain monitor has no SSL & domain verification section — that is for website, keyword and API monitors.
When it goes down
The monitor goes down when the days left reach the Alert before expiry value, and stays down until the registration is renewed and WHOIS shows the new date. It also goes down when the lookup itself fails, and — with Alert on registrar change on — when the registrar differs from the one seen on the monitor's first check.
| What happened | Message on the check |
|---|---|
| Expiry is within the alert period | Domain expires in 21 days (Threshold: 30) |
| The registration has expired | Domain expired on 3/14/2026 |
| WHOIS answered, but without an expiry date Zharp could read | Domain info parsing failed on whois.example-registry.net |
| A WHOIS server couldn't be reached or timed out | WHOIS Lookup Error: |
| The registrar changed (Alert on registrar change on) | Security Alert: Domain registrar changed from "Registrar A" to "Registrar B" |
The last one is followed by the error. A healthy check reads Domain is healthy. Expires in 240 days.
The monitor page
- The days until expiry, with Expires on, Registered on, Last updated and the Registrar.
- A Nameservers card with Primary NS, Secondary NS, DNSSEC, Registrar lock and whether Transfer is allowed.
- Recent checks. A row is marked CHANGED when something differs from the check before it: Registrar changed, Nameserver changed, DNSSEC enabled or DNSSEC disabled, Renewed, or Status changed. Open the row to see the before and after values.
DNS records monitors
A DNS records monitor resolves the records you list on every check and fails if a lookup fails or an answer doesn't contain the value you expect.
Create one
- 1Choose the type
Click New on the Monitors page and choose DNS records monitor.
- 2Enter the domain
Fill in Domain name, for example
example.com. Record names below are relative to it. - 3List the records
Under DNS records to check, fill in one row per record, and click Add record for more. At least one row needs a hostname.
| Field | What to enter |
|---|---|
| Hostname | @ for the domain itself, or a name such as www, which becomes www.example.com. A name that already ends with the domain is used as it is. |
| Type | A, AAAA, CNAME, MX, TXT or NS. The default is A. |
| Expected value | Text the answer must contain, such as an IP address or a mail server name. Optional. |
How answers are matched
- With an expected value, the record passes when any part of its answer contains that text, ignoring case.
203.0.113.10passes if it is one of several A records. For MX, entering the mail host such asmail.example.comis enough. Because it is a text match,203.0.113.1also matches203.0.113.10. - Without an expected value, the record passes as long as the lookup returns an answer.
- Lookups use the resolver chosen under DNS settings → DNS server: Google (8.8.8.8), Cloudflare (1.1.1.1), Quad9 (9.9.9.9), or Automatic for the checking server's own resolver.
Check propagation
With Check propagation set to Yes, every record that answered is asked again of Google, Cloudflare, Quad9 and OpenDNS (skipping the one already used). The check fails if any of them answers differently or not at all, and the message names the resolvers that are behind. With an expected value, each resolver only has to return that value; without one, the answers must match exactly, ignoring order and TTL — so a name that answers differently by location, such as one behind a CDN, needs an expected value.
When it goes down
| What happened | Message on the check |
|---|---|
| An answer didn't contain the expected value | DNS validation failed for www.example.com (A) |
| The lookup returned an error, such as no such record | DNS lookup failed for www.example.com: |
| A public resolver disagreed (Check propagation on) | DNS not fully propagated for www.example.com (A): Cloudflare (1.1.1.1) answers differently |
Every record is looked up on each check; the message names the first one that failed. The monitor page shows a DNS records card with what each record returned against what you expected, the query time, and the TTL for A and AAAA records. The Zone card shows the domain's SOA serial, primary nameserver and refresh time.
Troubleshooting
Domain info parsing failed
The WHOIS server answered, but the answer had no expiry date in a form Zharp recognises — or no record at all, which is what a subdomain gets. Check that Domain name is the registered domain and not a subdomain, and run whois example.com yourself to see what the registry returns.
WHOIS Lookup Error or a timeout
Some WHOIS servers limit how often they answer the same client. If errors come and go, set a longer Check frequency under Advanced settings — an expiry date doesn't change from minute to minute.
A DNS record fails right after I changed it
Resolvers keep the old answer until its TTL runs out. Wait for the TTL shown on the monitor page to pass, or lower the TTL before you make planned changes.