Free Domain Expiry Checker
Find out when a domain expires, straight from the registry that holds the record. This tool works out which registry runs the extension you typed, queries it directly over RDAP, and shows you the expiry date, the days remaining, the registrar and the status codes. It covers more than 1,200 extensions — and where a registry does not publish an expiry date, it tells you that plainly instead of inventing one.
Why a domain expiry date is worth watching
A domain is the one asset where a missed renewal takes everything down at once. When it lapses, the name stops resolving: the site goes dark, email stops arriving, and every backlink pointing at you starts landing on nothing. Crawlers get NXDOMAIN rather than a server error, which reads as a permanent condition, and pages begin dropping out of the index within days rather than weeks.
Recovery is possible but expensive. Once a lapsed domain falls into the redemption period, getting it back means paying a redemption fee on top of the renewal, commonly 10 to 20 times what the renewal itself would have cost. Checking an expiry date takes seconds, and it is probably the cheapest catastrophic-failure check you own.
What the lookup returns
Every field comes from the registry response, unchanged:
- Expiry date and the number of whole UTC days remaining
- Registration date and the domain age in completed years
- When the registry record was last changed
- The registrar of record, and its IANA registrar ID where one is published
- Status codes, each translated into a plain sentence
- The nameservers the registry has on file
- Any field the registry does not publish shows as an em dash. We never fill a gap with a guess, and we never substitute a default date.
What RDAP is, and why it replaced WHOIS
WHOIS answers are free text. There is no schema, so every registry formats its response differently and every WHOIS parser is a pile of per-registry regular expressions that break whenever a registry changes its layout. RDAP, the Registration Data Access Protocol, is the structured replacement: JSON defined by RFC 9083, served over HTTPS, with a discovery file published by IANA that maps each extension to the server that answers for it.
Dates arrive as an array of events. This is the relevant part of what the .com registry returns for google.com:
"events": [
{ "eventAction": "registration", "eventDate": "1997-09-15T04:00:00Z" },
{ "eventAction": "expiration", "eventDate": "2028-09-14T04:00:00Z" },
{ "eventAction": "last changed", "eventDate": "2019-09-09T15:39:04Z" }
]Every generic extension we tested — com, net, org, info, biz, xyz, app, dev, shop, online, site, store and club — returned an expiration event, a registration event and a registrar. That is an observation about the extensions we checked, not a rule we can quote at a registry, so read the country-code section below before assuming it generalises.
Which domains this works for, and which it honestly cannot
The IANA bootstrap file lists around 590 RDAP servers covering roughly 1,200 extensions. Almost every generic extension is there. Country-code extensions are the gap: only about 70 of the 250 or so two-letter codes are listed at all.
Extensions with no RDAP server in that file include .de, .it, .ru, .jp, .ch, .at, .be, .es, .se, .dk, .nz, .ie, .za, .cn, .kr, .co, .me and the Cyrillic Russian extension. For those this tool tells you that no registry publishes machine-readable registration data, and says explicitly that this is not a claim about your domain. We do make an exception for four extensions — .io, .sh, .ac and .us — whose registries run working RDAP servers that IANA simply does not list.
The subtler case is the registry that answers RDAP but leaves the expiry date out. We have confirmed this for .nl, .no, .fi, .is and .au: a lookup succeeds, the registration data comes back, and there is no expiration event in it. auDA goes further and omits the registration date too. That is registry policy, so we show an em dash and say which registry made that choice. If another tool shows you a confident expiry date for a .nl domain, it is showing you something the registry never published.
Status codes, in plain English
The status field is where the interesting information usually is. RDAP writes these codes space-separated in lower case, while WHOIS and the EPP protocol behind it use camelCase — RFC 8056 defines the mapping, and this tool reads either spelling. The ones that matter:
- active (EPP calls it ok) — normal, no restrictions.
- clientTransferProhibited — a transfer lock your registrar sets. This is the single most common source of false alarm. It is a good thing: it blocks unauthorised transfers.
- clientDeleteProhibited and clientUpdateProhibited — the same idea for deletions and record changes. Also normal.
- serverTransferProhibited and its siblings — the same locks, applied by the registry itself rather than the registrar. Common on long-established domains.
- autoRenewPeriod — recently auto-renewed. The registrar can still reverse the renewal for about 45 days.
- inactive — no nameservers are set, so nothing resolves.
- clientHold and serverHold — the domain has been pulled out of DNS. It will not resolve, whatever the expiry date says.
- redemptionPeriod — the domain expired and was deleted. The owner has roughly 30 days to pay a redemption fee and recover it. It is not available to register.
- pendingDelete — past redemption. The registry releases the name in about five days, after which anyone can take it.
If a registry returns a code this tool does not recognise, we print it exactly as it arrived and say we do not recognise it. Guessing at a meaning would be worse than saying nothing.
How to use this tool
- Enter the registered domain — example.com, not a full page URL and not a subdomain. A scheme, a path or a www prefix is fine; we strip them.
- Press Check — the lookup goes straight to the registry, so it usually takes a second or two.
- Read the countdown first — it is counted in whole UTC days from the registry timestamp, which is the same calendar the date beside it is shown in.
- Then read the status codes — they tell you whether the domain is locked, in redemption, or already out of DNS, which the expiry date alone will not.
- Check the registrar line — that is who you renew with, and it is often not who you think it is after a few years of agency handovers.
Common mistakes
- Assuming auto-renew is on: it is a per-domain setting, it is off by default at several registrars, and nobody tells you it is off until the domain stops resolving.
- A card that expired before the domain did: the most common cause of a lapsed domain is not a forgotten renewal date but a stored payment method that quietly stopped working.
- Renewing at the registrar while DNS lives elsewhere: renewing keeps the name, but if your DNS is hosted by a separate provider whose account has lapsed, the domain still will not resolve.
- Reading clientTransferProhibited as a problem: it is a lock you almost certainly want. It only matters when you are actually trying to transfer the domain.
- Reading a redemption-period domain as available: it is deleted but not released. Registering it is not possible yet, and the current owner can still take it back.
- Expecting a subdomain to have its own expiry: registration data exists for the registered name only. blog.example.com has no record of its own, so ask about example.com.
Frequently asked questions
How do I check when a domain expires?
Type the domain into the box above and press Check. The tool works out which registry runs that extension, queries that registry directly over RDAP, and shows the expiry date it publishes along with the days remaining, the registration date, the registrar and the status codes. Nothing is cached and no signup is required.
Why does this tool say it cannot check my .de or .co domain?
That is a statement about the registry, not about your domain. IANA publishes a list of which registries run an RDAP server, and roughly 180 of the 250 or so two-letter country extensions are not on it. DENIC, the .de registry, is one of them. When a registry is missing we say so explicitly rather than pretending the lookup failed or, worse, implying the domain might be unregistered. As a special case we do check .io, .sh, .ac and .us against servers those registries run but IANA does not list.
Why is the expiry date blank for my .nl or .au domain?
SIDN, which runs .nl, and auDA, which runs .au, both answer RDAP queries but do not include an expiration event in the response. That is registry policy. We show an em dash rather than a number we cannot support, and we say which registry chose not to publish it. A tool that shows a confident expiry date for a .nl domain is showing you something it does not have.
What happens after a domain expires?
Typically the registrar keeps it for a grace period of around 30 to 45 days during which you can renew at the normal price, then the registry deletes it into a redemption period of about 30 days where recovery costs a redemption fee, commonly 10 to 20 times the renewal price. After that it sits in pendingDelete for roughly 5 days and is then released for anyone to register. The exact windows are set by each registry, so read the status codes this tool returns rather than counting days from the expiry date.
Is this the same as a WHOIS lookup?
Same question, same registries, different protocol. RDAP is the structured JSON successor to WHOIS and is what registries are moving to. Contact details are redacted in both since GDPR, which is why this tool shows the registrar, the dates, the status codes and the nameservers rather than an owner name and address.
Enter your website to track its AI visibility across ChatGPT, Gemini, Claude, and Perplexity — and turn chatbot mentions into traffic.
- Set up in minutes
- Cancel anytime