Free Domain Expiration Checker
Check expiry dates for up to 20 domains at once. Registrar, EPP status codes and days remaining, with CSV export and calendar reminders. No signup.
How it works
Paste your domains
One per line or comma-separated. URLs are fine. We reduce each to its registrable domain.
We ask each registry over RDAP
Three domains at a time, straight to the TLD's own RDAP server, found through the IANA bootstrap file.
Sort, export and set reminders
Sort by days left, export CSV, copy the table, or download an .ics file with 30- and 7-day reminders.
How domain expiry works
An expiration date is not the day a domain disappears. It is the start of a sequence. For most gTLDs the sequence looks like this. The day counts are typical, and they vary by registry and registrar, so treat them as a planning guide, not a promise.
| Stage | Typical length | What is true |
|---|---|---|
| Auto-renew grace | up to 45 days | Expired, usually still the owner's, and the registrar can still renew it at the normal price. Shows as autoRenewPeriod in some records. |
| Redemption | about 30 days | The registry holds it for deletion. Only the previous owner can restore it, usually for a higher fee. Shows as redemptionPeriod. |
| Pending delete | about 5 days | Nobody can restore or register it. Release is scheduled. Shows as pendingDelete. |
| Released | n/a | Anyone can register it, and drop-catchers often do within seconds. |
Add the stages up and a gTLD can sit in limbo for up to about 80 days after the expiration date. Some registrars shorten the grace period, and many ccTLD registries run their own rules. The expiration date is the one number you can check in advance, so check it.
What happens to a SaaS custom domain when it lapses
A customer's custom domain is a hostname you serve over HTTPS. When the registration lapses, the registrar or registry can stop publishing its DNS. Then:
- DNS stops resolving or points somewhere else. The CNAME or A records your customer set up no longer reach your product. Their users see errors on a Tuesday afternoon, and your support inbox hears about it first.
- Certificate renewal fails. Renewing a certificate depends on the hostname still resolving to where you serve it. A lapsed domain can't pass that check, so the certificate eventually runs out.
- Someone else can register it. If the domain is released, a new owner can point it anywhere. Stale records pointing at old infrastructure are how subdomain takeovers start.
For your product, the expiry date is part of the health of every
custom domain you serve. Domainee doesn't read registration
dates, but it re-checks DNS and SSL for every connected domain every 5 minutes, and a
lapsed registration that stops resolving to you fires a domain.expired webhook. See the
domain.expired event reference for the payload.
How to check expiry: RDAP vs WHOIS
Both answer "when does this domain expire". They differ in how.
| RDAP | WHOIS | |
|---|---|---|
| Transport | HTTPS | Plain-text protocol on port 43 |
| Format | JSON with standard field names | Free-form text that differs by registry |
| Expiry field | An event with eventAction: "expiration" | A line such as "Registry Expiry Date", worded differently per registry |
| Browser friendly | Yes, when the server allows cross-origin requests | No. Browsers can't open port 43 |
| Coverage | Required for gTLD registries. Many ccTLDs don't publish it. | Still the only option for some ccTLDs |
This tool checks the IANA bootstrap file at data.iana.org/rdap/dns.json to see whether
the TLD runs an RDAP server, then asks that server for the registry's record. If the
bootstrap file lists no RDAP server for the TLD, the registry doesn't publish expiry over
RDAP, and the table says so instead of guessing.
From a terminal, the free WHOIS lookup API returns the same dates for one domain:
curl -s "https://api.domainee.dev/v1/tools/whois-lookup?domain=example.com" | jq
For more on one domain, use the WHOIS lookup for nameservers and the full record, the domain age checker for the registration date, and the SSL certificate checker for the certificate's own expiry. A domain and its certificate expire separately.
Frequently asked questions
How many domains can I check at once?+
Up to 20, one per line or comma-separated. URLs work too. We strip the protocol and path, lowercase everything and reduce each entry to its registrable domain, so https://www.blog.example.co.uk/page becomes example.co.uk.
How long does a bulk check take?+
Usually a few seconds for a full list of 20. We check three domains at a time and fill the table in as answers come back, so a slow registry only holds up its own row.
What does 'Expiry not published by this registry' mean?+
Some registries, mostly country-code TLDs, don't publish an expiration date over RDAP, or don't run an RDAP server at all. That's a registry decision, not an error in your list. Check the expiry in your registrar's dashboard instead.
Why can the date differ from my registrar's dashboard?+
RDAP shows the registry's record. A registrar may show a renewal that hasn't reached the registry yet, or a different date during a grace period. If a domain was auto-renewed, the registry date moves forward and the status can include autoRenewPeriod. When the two disagree, trust the registrar for billing and the registry for what's in effect.
What do EPP status codes like clientTransferProhibited mean?+
They're flags the registry or registrar sets on a domain. clientTransferProhibited is a registrar lock against transfers, and it's normal. redemptionPeriod and pendingDelete mean the domain has expired and is on its way out. serverHold means the registry has suspended DNS. Hover or focus a code in the results table, or read the list under it, for a plain-English explanation.
Does this send me reminders?+
Not by email. It generates a .ics calendar file with two all-day events per domain, 30 days and 7 days before expiry. Import it into Google Calendar, Apple Calendar or Outlook. Reminders already in the past are left out. The file is built in your browser.
How do I monitor expiry automatically?+
This page is for one-off checks. If you run a SaaS with customer domains, Domainee re-checks DNS and SSL for every connected domain every 5 minutes and sends a domain.expired webhook when one stops resolving to you, which is how a lapsed registration shows up on your side. Domains you sell through the Buy a Domain API auto-renew by default.
Your customers' domains expire too.
Domainee re-checks every connected custom domain every 5 minutes and fires a domain.expired webhook when one stops resolving to you, so you hear about it before your customer's users do.
20 custom domains and 100 GB bandwidth free, forever.
More free tools
SSL
Free SSL Certificate Checker
View issuer, validity, expiration countdown, and certificate chain for any domain.
DNS
Free DNS Record Lookup
Check A, AAAA, CNAME, MX, TXT, NS, and SOA records for any domain instantly.
Domain
Free WHOIS Lookup
View registrar, creation and expiry dates, name servers, and registration data for any domain.
DNS
Free CNAME Lookup & Generator
Validate CNAME records and get provider-specific setup instructions for custom domains.
DNS
Free DNS Provider Lookup
Identify which DNS provider serves a domain and get the record name, apex support and gotchas for that provider.
DNS
Free Domain Connect Checker
Check whether a domain's DNS provider supports the Domain Connect protocol and which flow it offers.