ScreenshotNeo

BlogHow-to

How to Monitor Domain Availability

Track renewal dates for domains you own and watch registration data for names you want. Learn how RDAP checks work and why expiration does not mean a domain is immediately available.

By the ScreenshotNeo team4 October 20267 min read

To monitor domain availability, first decide whether you mean protecting a domain you already own or watching a name you hope to register. For an owned domain, track its expiration date, keep registrar contact and payment details current, and consider auto-renewal. For a name you want, check its registration data through RDAP and repeat the check with a script if you need to observe changes. An expired domain is not necessarily available immediately: it may pass through restoration and deletion stages first.

What domain availability monitoring means

There are two distinct jobs:

  • Protect a domain you own: know its expiration date and make sure renewal notices and payment can reach you.
  • Watch a name you want: observe its registration data and status, then investigate with the relevant registrar or registry when it changes.

A lookup is a snapshot of registration data. It does not reserve a name, guarantee that it will be released, or guarantee that a notification will arrive at a particular time.

How do I monitor domain availability?

  1. Look up the name. Use ICANN Lookup to view publicly available registration data and identify the registrar.
  2. Record the result. For a domain you own, note its expiration date and registrar. For a name you want, save the status and lookup time so you can compare later.
  3. Choose the right alert. Owners should rely on registrar renewal notices and may enable auto-renewal. People watching a name can schedule repeat RDAP lookups and alert themselves when observed data changes.
  4. Confirm before acting. Check the sponsoring registrar or registry for current status and applicable rules. A missing or changed lookup result is a reason to investigate, not proof that registration is open.

ICANN provides a free browser client and an open-source command-line RDAP client that can be scripted. Its browser client queries registry or registrar RDAP data in real time and may fall back to WHOIS if relevant RDAP data is unavailable. See ICANN’s RDAP guidance and the lookup tool.

Protect domains you already own

Track the expiration date and registrar

Use the registration lookup to identify the registrar and view available registration data. Keep a record of the expiration date and the registrar account where renewal is managed. If the date or renewal status is unclear, contact the registrar.

Make renewal notices deliverable

Keep the email address and other account contact details current. ICANN policy requires registrars to send two renewal reminders approximately one month and one week before expiration. Those reminders only help if the registrar can reach you.

Consider auto-renewal carefully

Most registrars offer auto-renewal. If you use it, keep the payment method current and review the registrar’s renewal terms and prices. Available choices and fees vary by registrar, so verify them in your account rather than assuming the original registration price will apply.

These are separate protections: reminders give you a chance to act, while auto-renewal attempts renewal under the registrar’s terms. Neither removes the need to keep account and payment information current.

Check registration data repeatedly with RDAP

RDAP is the current primary registration-data protocol for gTLDs. From 28 January 2025, gTLD registries and registrars must provide RDAP under the gTLD RDAP Profile and generally are no longer required to provide WHOIS, with exceptions for .com, .name, and .post. ICANN describes RDAP as enabling access to domain registration data and offers an open-source CLI client suitable for scripting. See ICANN’s RDAP information.

The following example uses the ICANN RDAP CLI client. Install it by following the official client repository instructions, then run a lookup:

rdap example.com

To make a basic change detector, save the output and compare it with the previous run. This shell example assumes the rdap command is installed and that your system has sha256sum:

#!/usr/bin/env bash
set -euo pipefail

domain="${1:?Usage: ./check-domain.sh example.com}"
state_dir="${XDG_STATE_HOME:-$HOME/.local/state}/domain-watch"
mkdir -p "$state_dir"
current="$state_dir/${domain}.current"
previous="$state_dir/${domain}.previous"
tmp="$(mktemp)"
trap 'rm -f "$tmp"' EXIT

rdap "$domain" > "$tmp"
if [[ -f "$current" ]] && ! cmp -s "$tmp" "$current"; then
  cp "$current" "$previous"
  echo "RDAP response changed for $domain"
  diff -u "$previous" "$tmp" || true
elif [[ ! -f "$current" ]]; then
  echo "Initial RDAP snapshot saved for $domain"
fi
mv "$tmp" "$current"
trap - EXIT

Save it as check-domain.sh, make it executable with chmod +x check-domain.sh, and run ./check-domain.sh example.com. The script reports a difference in the RDAP response; it does not decide that a name is available. Responses can change for reasons other than a release, and formatting or non-status fields may change. Review changes and verify the current state with the authoritative lookup before taking action.

For notifications, run the script from a scheduler you already use and connect its change message to your own notification mechanism. The ICANN client makes scripting possible, but does not prescribe a monitoring interval or guarantee alert delivery. Choose an interval appropriate to your needs and avoid treating repeated checks as a reservation.

How do I know when an expired domain becomes available?

Expiration is not the same as release. ICANN describes a typical gTLD sequence in which a deleted domain can be restored during a 30-day Redemption Grace Period. If it is not restored, it enters PendingDelete for five days; after that, it is released first-come, first-served. Registrar handling and terms can vary, and the described durations should not be assumed for every TLD or circumstance. See ICANN’s renewal and expiration FAQ.

For a particular name, verify the status with its registrar and registry data. A date shown as expired does not establish the release date, and even a released name may be registered by someone else before you act.

Coverage and protocol limits

  • gTLD versus country-code domains: ICANN’s RDAP guidance and the lifecycle above concern gTLDs. Check the authoritative registration-data service and policies for a ccTLD rather than assuming identical coverage.
  • Privacy and missing fields: publicly available registration data may not expose every registrant detail. Monitoring should focus on the fields and statuses actually returned.
  • RDAP versus WHOIS: lead with RDAP for current gTLD checks. A lookup service may use WHOIS as a fallback when relevant RDAP data is unavailable.
  • Registrar differences: renewal options, prices, grace handling, and fees vary. The registrar’s terms govern the account actions available to you.

Troubleshooting

Problem Likely cause What to do
The command rdap is not found The client is not installed or is not on your PATH. Follow the installation instructions in the official ICANN client repository, then check the command is available in your shell.
A lookup returns little or no data Fields may not be publicly available, or the relevant service may not return the data you expected. Try ICANN Lookup and confirm which registrar or registry is authoritative for the domain.
The output changed, but the name does not appear available A response can change without the domain being released; the script detects any output difference. Review the diff, identify the changed status or event fields, and confirm with the authoritative service.
No alert arrived before expiration Contact details may be outdated, a message may not have been delivered, or the registrar’s reminder settings and terms may differ. Check the registrar account directly, update contact information, and set an independent calendar reminder. Do not rely on email alone.
An expired name still cannot be registered It may be in a restoration or deletion stage, or its TLD may have different rules. Check current registry and registrar status; expiration alone does not mean immediate release.
The same domain always appears changed Some RDAP response fields may vary between requests or the output may contain changing metadata. Inspect the differences and, if appropriate, compare only stable fields relevant to your monitoring goal. Do not suppress status changes without review.

Performance, reliability, and cost

ICANN Lookup is suitable for a one-off manual check. A scripted RDAP client makes repeated checks reproducible, but the sources do not specify a recommended polling frequency, a notification service, or guaranteed delivery. Keep checks proportionate, retain timestamps with saved observations, and confirm important changes independently.

The ICANN browser client and open-source CLI are free options described by ICANN. Registrar renewal and recovery costs are separate and depend on the registrar’s current terms and the domain. A monitoring script cannot prevent expiration or reserve a wanted name; for owned domains, registrar renewal controls remain essential.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. It is not a domain registration lookup service, but if your workflow also needs screenshots of public domain status or registrar pages, one GET request can capture a page. See the ScreenshotNeo website and API documentation.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://lookup.icann.org/ -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://lookup.icann.org/"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://lookup.icann.org/' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Cookie banners, popups, and chat widgets are removed before the shot. Bot checks, blank pages, and failed loads are never billed. An MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. A screenshot records a page view; it does not replace an RDAP lookup or confirm that a domain is available. Sign up for 1,000 free screenshots a month, with no card.

FAQ

Is WHOIS still the right way to monitor a gTLD?

Use RDAP as the primary protocol for current gTLD registration-data checks. WHOIS may still be used as a fallback by lookup services where RDAP data is unavailable.

Does monitoring reserve a domain name?

No. A lookup or alert only reports observed data; it does not hold a name for you.

Can I assume every TLD follows the same expiry timeline?

No. ICANN’s stated redemption and PendingDelete durations describe a typical gTLD lifecycle. Verify the specific TLD, registrar, and registry rules.

Will an RDAP change tell me exactly when a name can be registered?

No. It signals that the returned data changed. Confirm the current registration state with the authoritative service.