Free tool
Check when fifty domains expire, in one paste
Paste your list, one domain per line. Every extension's registry gets queried, and the answer comes back as one table sorted by urgency: what has already expired sits at the top, what is fine sits at the bottom, and the dates are the registry's own — not a cached copy.
Why a one-off check is never enough
A domain never expires on the day you happen to think about it. It expires on a Saturday in August, mid-holiday, two years after the card on file at the registrar was replaced and nobody updated it. The check you just ran is right today and wrong in six months. What you actually need is for something to run it every single day in your place, and to speak up before the date, not after it.
Where these dates come from
Every extension has a registry behind it, and every registry runs an RDAP service — the protocol that replaced whois, and the one ICANN requires of registries and registrars on generic extensions. For each domain we ask IANA which server holds the answer, read the expiration date that server publishes, and pick up the registrar's name on the way through. Nothing gets guessed: where a registry publishes no date, the row says so instead of filling the gap.
The wall of fifty dates
There is no quiet month
Fifty domains, fifty dates with nothing lining them up. They even come in clumps, because names bought on the same day renew on the same day. Move the day you go through the portfolio and watch what gets left behind you.
On July 16: 34 domains are already past their date, 3 fall due within thirty days, 13 can wait.
- Date already passed
- Due within thirty days
- Still far off
Fifty sample renewal dates, spread the way a portfolio built in batches actually is.
What this table is worth
Today's check will be wrong in six months.
A domain does not expire on the day you happen to think about it. It expires on a Saturday in August, two years after the card on file at the registrar was replaced.
- 50domains per check
- 5sent to the registries at a time
- 1minute or so for the whole list
Reading the table
Rows come back sorted by urgency, not in the order you typed them — the first row is the one on fire. Four chips above the table sum up the batch.
- Expired
- The date the registry publishes has gone by. The domain is not lost yet — it moves through phases whose length the registry sets, and the holder can still get it back during them. But the site and the email may already be down. This is the one row you handle within the hour.
- Status: redemptionPeriod, clientHold, pendingDelete
- The registry publishes an unusual status, and it outranks the date. clientHold and serverHold pull the domain out of the zone, so the site stops answering. redemptionPeriod and pendingDelete mean it is on its way out. The status table further down says what each one still leaves you.
- Under a week
- Seven days or fewer. Auto-renew has had its chances by now: if it were going to fire, it would have. Go check the card on file at the registrar instead of trusting the toggle.
- Under a month
- Enough room to act without rushing. It is also the last stretch where a transfer to another registrar is comfortable — starting one the day before the date is a bad idea.
- Up to date
- More than thirty days out. Nothing to do, with one exception: if this domain carries a live site, the expiration date is only one of three clocks that can cut you off. The certificate and the DNS records are the other two.
- Date not published
- The registry answered, just without an expiration date. Some extensions never publish one in their public service. Nothing is wrong with your domain, and nothing is wrong with the tool. The registrar's name usually comes back anyway.
- Available or unknown
- The registry has no record of this name. Two reasons: nobody has registered it, or its extension is run by a registry that does not answer public queries. Do not call it available until you have tried to register it.
- Registry silent
- The registry's server ran out of time, or turned the request down because we had already asked it too often. Run those rows again on their own in a few minutes — the answer is usually different.
The mistakes that cost a domain
None of these is hypothetical. They are the four ways a portfolio tracked roughly ends up losing a name.
“Auto-renew is on, I stopped looking”
What causes it: Auto-renew is a payment instruction, not a guarantee. It fails when the card on file has expired, when a spending limit is hit, when the registrar account is in dispute, or when the domain changed hands and the setting did not come with it.
What fixes it: Keep one check and one alert in the final week, even on names set to auto-renew. That is what DomainVigil does: the far-out reminders go quiet, the last-week ones do not.
The registrar's date and the registry's date disagree
What causes it: A registrar usually shows its own billing date, which can land a few days either side of the registry's. A reseller adds a third one.
What fixes it: The registry date is the one that counts, and it is the one in this table, because it is what triggers deletion. Treat the gap as margin, never as extra time.
A domain in the portfolio never made it onto the list
What causes it: The list comes from a spreadsheet, and the spreadsheet dates from the last site handover. The client has bought two campaign domains since, at a different registrar, on a personal card.
What fixes it: Rebuild the list from the DNS zones that are actually being served, not from the invoices. Then hand it to something that reads it every day instead of a file nobody opens.
“There was a month left, we had time”
What causes it: Confusing the expiration date with the phases that follow it. The stretch where the registry still renews the domain on its own is not a grace period handed to the holder — the site can already be down while it runs.
What fixes it: Treat the expiration date as the cut-off, not as the opening of a negotiation. The table below has the real order of the phases.
What happens to a domain after its expiry date
The sequence below is the one generic extensions follow (.com, .net, .org; .fr and most others follow a close variant with their own durations). Lengths marked set by the registry vary from one extension to the next.
| Phase | Length | What happens | What is left to do |
|---|---|---|---|
| Expiry | Day zero | The registry's published date arrives. Depending on the registrar, the site and the email can stop that same day. | Renew. Nothing else to decide. |
| Auto-Renew Grace Period | Set by the registry, often up to 45 days | The registry has renewed the domain, and the registrar can still cancel that renewal. The name stays with its holder. | Pay the renewal at the normal price. This is the last simple phase. |
| redemptionPeriod | 30 days | The domain comes out of the zone: the site stops answering and email bounces. It is not back on the market yet. | Ask the registrar for a restore. It costs money, often ten times a renewal. |
| pendingDelete | 5 days | The decision is made and the deletion is scheduled. No restore is possible. | Nothing. Prepare what comes next: new name, redirects, email addresses. |
| Released | — | The name goes back to the registry and anyone can register it. Names anyone wants are gone within seconds. | Buy it back if it is still free, or on the aftermarket. |
The 30-day and 5-day figures are the ones ICANN sets for generic extensions. Country-code extensions (.fr, .be, .ch, .de) apply their own rules, published by their registry.
The statuses a registry publishes, and what they change
These are the EPP statuses, the vocabulary every registry shares. The client- prefixed ones are set by the registrar, the server- prefixed ones by the registry itself — and only the registry can lift those.
| Status | What it means | Does the domain resolve? |
|---|---|---|
| ok | No restriction. The normal state of a domain with no lock. | Yes |
| clientTransferProhibited | Transfer lock set by the registrar. It blocks an unauthorized transfer, and it is the state to be in whenever you are not mid-migration. | Yes |
| clientHold | The registrar asked the registry to remove the domain from the zone. Often a sign of an unpaid invoice or a dispute. | No |
| serverHold | Same effect, this time the registry's call. A holder cannot lift it on their own. | No |
| autoRenewPeriod | The registry has just applied the auto-renewal. The cancellation window is running. | Yes |
| redemptionPeriod | Deletion has been requested. A paid restore is still on the table. | No |
| pendingDelete | Deletion is scheduled and irreversible. | No |
| pendingTransfer | A transfer to another registrar is under way. | Yes |
Frequently asked questions
How many domains can I check at once?
Fifty per check. Past that, the extra lines are not sent. That is not a nudge toward opening an account — it is the cap that keeps a public tool from being used to harvest registry data in bulk.
Why does a bulk check take a minute?
Registry servers rate-limit us: two calls to the same server have to be spaced apart. Fifty .com names all go through the same server, one after another. Rather than leave you staring at a blank screen, we send the list in batches of five and the table fills in as answers land. Stop whenever you want — the rows already in stay put.
Where do the expiration dates come from?
From each extension's registry, queried over RDAP. That is the source that actually decides when a domain gets deleted — not your registrar's dashboard, which shows its own billing date.
Why do some domains come back with no date?
Because their registry does not publish it in its public service. The row then reads Date not published instead of inventing one. The registrar name and the statuses usually still come through.
Is an expired domain gone for good?
Not right away. It runs through several phases before it is released, one of which is a paid restore window. The table above has the order and the lengths for generic extensions. The site and the email, though, can go dark long before those phases are over.
Does it work with ccTLDs and country-code domains?
Yes, when their registry publishes an RDAP service, which most now do. We ask IANA which server to query for the extension, and fall back to a public aggregator when it declares none. If nothing answers, the row says so.
Do I need an account to use it?
No account, no email address. You get the whole table. An account is for something else: running this same check every day and writing to you before the date.
Four moves
Taking over a portfolio without losing a name
None of these takes a tool. They take not trusting the toggle.
Rebuild the list from the DNS zones
Not from the invoices. A spreadsheet dates from the last site handover, and the client may have bought two campaign domains since, at a different registrar, on a personal card.Compare against the registry date, never the invoice
A registrar usually shows its own billing date, and a reseller adds a third one. The registry date is what triggers deletion, so the gap is margin, not extra time.Keep an alert in the final week
Even on names set to auto-renew. Auto-renew is a payment instruction, not a guarantee: it fails when the card has expired, when a spending limit is hit, when the account is in dispute.Read the expiry date as a cut-off date
Not as the opening of a negotiation. The phases that follow are not time handed to the holder — the site and the email can already be down while they run.
The registry vocabulary
The statuses that outrank the date
These are the EPP statuses, the vocabulary every registry shares. The client- prefixed ones are set by the registrar, the server- prefixed ones by the registry itself — and only the registry can lift those.
ok- No restriction. This is the normal state of a domain with no lock.
clientTransferProhibited- Transfer lock set by the registrar. This is the state to be in whenever you are not mid-migration.
clientHold- The registrar asked for the domain to be pulled from the zone. It no longer resolves: often an unpaid invoice or a dispute.
serverHold- Same effect, this time the registry's call. A holder cannot lift it on their own.
autoRenewPeriod- The registry has just applied the auto-renewal. The cancellation window is running.
redemptionPeriod- Deletion has been requested. A restore is still possible, at a price, and the domain no longer resolves.
pendingDelete- Deletion is scheduled, and no restore is possible.
pendingTransfer- A transfer to another registrar is under way.
Twenty checks, no sign-up
- Who owns this domain, and since when?
- Where does this URL actually end up?
- What is this site built with?
- Is this URL open to crawlers?
- Has my DNS change propagated yet?
- Build your SPF record
- Is this domain blacklisted?
- What security headers does this site send?
- A domain's full health report
- When does this domain expire?
- Is this SSL certificate valid, and when does it expire?
- Are your SPF, DKIM and DMARC set up right?
- Is this domain or its mail server blacklisted?
- Which servers receive mail for this domain?
- Which nameservers answer for this domain?
- What do this domain's TXT records do?
- Where does this CNAME end up?