← Blog  ·  October 2026

How to Check When Your Domain Expires (Free Tool + Auto Alerts)

Instant domain expiry lookup — see days remaining, expiry date, and registrar — then set up automatic renewal alerts so you never lose a domain.

A domain expiry you didn't see coming is one of the most disruptive incidents in web infrastructure. Your site goes dark, email stops delivering, and in the worst case a squatter grabs the domain before you can renew. The fix is simple: check the expiry date now, and set up alerts so it never sneaks up on you.

This guide covers the fastest ways to check when any domain expires, from a one-click free tool to command-line methods and automated monitoring.

⚡ Quickest way to check domain expiry Use the free Domain Expiry Checker. Enter any domain, click Check — you get expiry date, days remaining, and registrar in under a second. No signup required.

Method 1: Free online domain expiry checker

Domain Expiry Checker — instant lookup

Easy Setup: 0 min Works for: .com, .net, .org, most gTLDs and ccTLDs

The fastest option for a one-off lookup. Go to lior-seats.github.io/domain-expiry-checker/, enter the domain (e.g. github.com), and click Check Expiry. Results appear immediately:

Data comes from RDAP (Registration Data Access Protocol), the modern replacement for WHOIS. It supports most gTLDs (.com, .net, .org, .io, .dev, .app) and a growing set of ccTLDs.


Method 2: Command-line WHOIS lookup

whois command (macOS / Linux)

Easy Setup: already installed on most systems Best for: spot checks, scripting

If you prefer the terminal:

whois github.com | grep -i "expir"

Output varies by registrar. Common field names include:

Example for github.com:

Registry Expiry Date: 2027-10-09T04:00:00Z

To convert the date to days remaining in bash:

EXPIRY="2027-10-09"
DAYS=$(( ( $(date -d "$EXPIRY" +%s 2>/dev/null || date -j -f "%Y-%m-%d" "$EXPIRY" +%s) - $(date +%s) ) / 86400 ))
echo "$DAYS days remaining"

macOS note: Use date -j -f syntax as shown. GNU date (date -d) is Linux-only.

rdap.org — structured RDAP lookup

Easy Returns: JSON Best for: scripting, CI checks

RDAP returns machine-readable JSON, making it easier to parse than WHOIS:

curl -s "https://rdap.org/domain/github.com" | \
  python3 -c "
import json, sys
data = json.load(sys.stdin)
for e in data.get('events', []):
    if e.get('eventAction') == 'expiration':
        print('Expires:', e['eventDate'])
"

Expected output:

Expires: 2027-10-09T04:00:00Z

RDAP is rate-limited, so don't call it in tight loops. For batch checks across many domains, cache results for at least an hour.


Method 3: Shell script to check multiple domains

Batch domain expiry check script

Medium Best for: checking a list of domains in one shot

If you manage several domains, check them all at once:

#!/bin/bash
# check-domains.sh — check expiry for a list of domains

DOMAINS=("github.com" "example.com" "yourdomain.com")
WARN_DAYS=30

for domain in "${DOMAINS[@]}"; do
  expiry=$(whois "$domain" 2>/dev/null | grep -i "expir" | head -1 | awk '{print $NF}')
  if [ -z "$expiry" ]; then
    echo "UNKNOWN  $domain (WHOIS parse failed)"
    continue
  fi
  # Normalize date format (YYYY-MM-DD)
  clean=$(echo "$expiry" | grep -oE "[0-9]{4}-[0-9]{2}-[0-9]{2}")
  if [ -z "$clean" ]; then
    echo "UNKNOWN  $domain (date format: $expiry)"
    continue
  fi
  days=$(( ( $(date -d "$clean" +%s 2>/dev/null || date -j -f "%Y-%m-%d" "$clean" +%s) - $(date +%s) ) / 86400 ))
  if [ "$days" -lt 0 ]; then
    echo "EXPIRED  $domain (expired $((days * -1)) days ago)"
  elif [ "$days" -lt "$WARN_DAYS" ]; then
    echo "WARNING  $domain — $days days remaining ($clean)"
  else
    echo "OK       $domain — $days days remaining ($clean)"
  fi
done

Save as check-domains.sh, make it executable (chmod +x check-domains.sh), and run it. To run it on a schedule:

# Add to crontab — run every Monday at 9am
0 9 * * 1 /path/to/check-domains.sh | mail -s "Weekly domain expiry report" you@example.com

Method 4: Automated monitoring with email alerts

DomainWatch — automatic expiry alerts

Easy Setup: 2 min Best for: set-and-forget coverage across all your domains

If you manage more than a handful of domains, a shell script quickly becomes a maintenance burden. DomainWatch monitors domain expiry dates automatically and sends email alerts at 30, 14, 7, and 1 day before expiry — without any cron jobs or scripts to maintain.

Add your domains to the dashboard, and DomainWatch checks them daily. If an expiry date changes unexpectedly (including after a renewal), you get a notification immediately.


What to do after checking your domain expiry

Once you know the expiry date, here's how to act on it:

If your domain expires in <30 days

  1. Log in to your registrar immediately and check that auto-renew is enabled.
  2. Verify the payment method on file is current — expired cards are a common cause of auto-renew failure.
  3. Check the billing email address — it should go to an active inbox, not a former employee or deprecated alias.
  4. Consider renewing manually right now rather than relying on auto-renew.

If auto-renew is already enabled

Don't assume it will work. Auto-renew fails silently when:

Set a calendar reminder or use monitoring to get an independent alert — don't rely on your registrar as the only failsafe.

If your domain already expired

Most registrars offer a grace period (typically 30–45 days after expiry) during which you can renew at the normal price. After the grace period, the domain enters redemption — you can still recover it, but at a significantly higher fee. Act within the grace period to avoid the redemption surcharge.


Common questions

Why does RDAP show a different date than WHOIS?

RDAP and WHOIS both query the authoritative registry, but different registrars update their WHOIS records on different schedules. For most gTLDs (.com, .net, .org), RDAP returns the authoritative registry data and is more reliable. If there's a discrepancy, trust RDAP for recent renewals.

Can I check ccTLDs like .co.uk or .de?

RDAP support varies by ccTLD registry. Most major ccTLDs now support RDAP (.uk, .de, .fr, .nl, .au). For ccTLDs that don't support RDAP, fall back to WHOIS — the format varies more but the expiry date is still present for most registries.

How often should I check domain expiry?

For domains critical to your business, check monthly. For a portfolio of domains, use automated monitoring so you get an alert when something actually needs attention — instead of manually reviewing a list every month.


🔍 Check a domain now

Enter any domain to see expiry date, days remaining, and registrar instantly. No signup required.

Check Domain Expiry Free → Set Up Auto Alerts →