Free Tool

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.

URLs are fine. We strip the protocol and path and reduce each entry to its registrable domain.

How it works

01

Paste your domains

One per line or comma-separated. URLs are fine. We reduce each to its registrable domain.

02

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.

03

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.

StageTypical lengthWhat is true
Auto-renew graceup to 45 daysExpired, usually still the owner's, and the registrar can still renew it at the normal price. Shows as autoRenewPeriod in some records.
Redemptionabout 30 daysThe registry holds it for deletion. Only the previous owner can restore it, usually for a higher fee. Shows as redemptionPeriod.
Pending deleteabout 5 daysNobody can restore or register it. Release is scheduled. Shows as pendingDelete.
Releasedn/aAnyone 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.

RDAPWHOIS
TransportHTTPSPlain-text protocol on port 43
FormatJSON with standard field namesFree-form text that differs by registry
Expiry fieldAn event with eventAction: "expiration"A line such as "Registry Expiry Date", worded differently per registry
Browser friendlyYes, when the server allows cross-origin requestsNo. Browsers can't open port 43
CoverageRequired 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