---
title: Is our domain about to expire? How to check with the Domain Expiry Checker
description: A lapsed domain takes your website and your email down at once, and a renewal that silently failed is easy to miss. To check when a domain expires, read the expiration date the registry itself publishes over RDAP, not the date in a registrar email. Here's how to do it with the free Domain Expiry Checker, how to read the status flags that say whether a domain can still be saved, and the curl command that shows the same date.
canonical: https://watchfor.io/blog/how-to-check-when-a-domain-expires
---

# Is our domain about to expire? How to check with the Domain Expiry Checker

2026-10-04 · WatchFor Team · Guides · guides, dns, security

A lapsed domain takes your website and your email down at once, and a renewal that silently failed is easy to miss. To check when a domain expires, read the expiration date the registry itself publishes over RDAP, not the date in a registrar email. Here's how to do it with the free Domain Expiry Checker, how to read the status flags that say whether a domain can still be saved, and the curl command that shows the same date.

To check when a domain expires, look up its registration in the registry's
RDAP service and read the expiration date and the status flags. The date
tells you how many days are left; the flags tell you whether the domain is
locked, already in a grace period after expiry, or about to be deleted. The
registry's record is the one that counts: if it shows a date in the past, or
a `redemption period` flag, the renewal didn't go through, whatever your
billing page says.

The free [Domain Expiry Checker](/domain-expiry-checker) reads the expiry
date straight from the registry over RDAP, with no cache in between, and
counts the days left. No signup.

## What this tool answers

*When does this domain expire, and is it still safe?* Reach for it when a
renewal invoice failed or the card on file changed, when you inherit domains
from a former colleague or agency, when a site and its mail both stop
working at once, or when you're waiting for someone else's domain to drop so
you can register it.

## A real example

### Checking when a domain expires after a renewal

A situation every team meets eventually: the finance team changes the
company card, and nobody is sure whether the domain renewals went through on
the new one. The registrar's dashboard may show "auto-renew on", but only the
registry's expiry date proves a renewal happened. We checked a domain to
show what a healthy, well-protected registration looks like.

In the [Domain Expiry Checker](/domain-expiry-checker) we typed
`mozilla.org` and pressed **Run lookup**:

![The Domain Expiry Checker result for mozilla.org: 111 days until expiry from RDAP, registrar MarkMonitor Inc., expires Sat 23 Jan 2027 05:00:00 GMT, created 1998-01-24, updated 2026-09-14, four Akamai nameservers and six status flags: client and server delete, transfer and update prohibited](/blog/how-to-check-when-a-domain-expires-result.webp)

The `.org` registry answered over RDAP in 583 ms:

- **111 days until expiry**, in green: the registration runs until
  **23 January 2027, 05:00 UTC**.
- **Registrar: MarkMonitor Inc.**; registered since **24 January 1998**.
- **Six status flags**: delete, transfer and update are prohibited at both
  the **client** (registrar) and the **server** (registry) level.

The server-level flags matter as much as the date. They're a registry lock:
the registry refuses any change to the domain until the registrar completes
an extra, usually manual, verification. Even a hijacked registrar account
can't move or delete the domain.

**The answer:** `mozilla.org` has 111 days left and carries a registry lock.
For your own domain after a card change: if the expiry date moved forward a
year on the renewal day, the renewal worked; if it didn't move, renew now,
before the date passes.

## How to read the results

| Field | What it means |
| --- | --- |
| **Days until expiry** | Whole days left. Green at 45 or more, amber from 14 to 44, red under 14. A dash means the registry doesn't publish an expiry date (some country-code TLDs). |
| **RDAP / WHOIS chip** | The data source. WHOIS is the fallback for registries without RDAP. |
| **Registrar** | Where to renew. Only this registrar can renew the domain until it's transferred. |
| **Expires** | The exact expiry time in UTC, from the registry. |
| **Created / Updated** | First registration, and the last change (a renewal, transfer, nameserver or status change). |
| **Nameservers** | Where DNS is delegated. Parking nameservers after expiry are a sign the registrar has taken over the domain. |
| **Status flags** | EPP status codes; see the table below. |

The status flags you're most likely to see, as defined in
[ICANN's EPP status codes](https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en):

| Flag | What it means for renewal |
| --- | --- |
| `client transfer prohibited` | Normal registrar lock against unwanted transfers. |
| `server … prohibited` | Registry lock; changes need extra verification. Good for valuable domains. |
| `auto renew period` | The registry renewed the domain automatically after expiry; the registrar can still delete it if the renewal isn't paid. |
| `redemption period` | The domain was deleted after expiry. It can be restored for 30 days, usually for an extra fee. |
| `pending delete` | Redemption is over. The domain is purged five calendar days later and becomes available to anyone. |
| `client hold` / `server hold` | The domain is suspended and doesn't resolve, often for non-payment. |

## More ways to use it

- **Auditing every domain you own.** Run each one, including the short
  redirect and marketing domains people forget, and note who the registrar is.
- **When a site and its mail fail together.** An expired domain is one of
  the few faults that takes both down at once. A date in the past or a
  `hold` flag settles it in one lookup.
- **Waiting for a domain to drop.** A domain in `redemption period` or
  `pending delete` may become available; one with years left won't.
- **After a transfer.** A transfer to a new registrar normally adds a year;
  confirm the new date.
- **Checking a vendor's domain.** A SaaS your business depends on with a
  domain expiring in days deserves a heads-up.

## Tips and gotchas

- **Expired doesn't mean deleted, at first.** For generic TLDs a domain passes
  through grace periods, then 30 days of redemption, then five days of pending
  delete. During that time the old owner can usually get it back; the cost
  rises the later you act.
- **Registrar emails go to stale addresses.** Renewal reminders are sent to
  the registrant contact on file; if that's a former employee's inbox, nobody
  sees them. Use a shared address.
- **Auto-renew fails quietly.** An expired card, a disabled account or a
  registrar migration stops it. Check the registry date, not the setting.
- **Some ccTLDs hide the date.** A few registries publish no expiry date; the
  checker shows a dash instead of a guess, and the registrar's dashboard is
  the only source.
- **Days are counted in UTC.** The expiry instant is a UTC timestamp; renew
  well before the last day rather than on it.

## Check it from the command line too

RDAP is JSON over HTTPS; `rdap.org` redirects to the right registry for any
TLD:

```bash
curl -sL https://rdap.org/domain/mozilla.org \
  | jq -c '{ev: [.events[] | select(.eventAction=="expiration" or .eventAction=="registration")
                 | [.eventAction, .eventDate]], status}'
```

```text
{"ev":[["expiration","2027-01-23T05:00:00Z"],["registration","1998-01-24T05:00:00.291Z"]],"status":["client delete prohibited","server delete prohibited","client transfer prohibited","server transfer prohibited","client update prohibited","server update prohibited"]}
```

The same date and the same six flags the checker showed. To turn the date
into days left on a Linux shell:

```bash
echo $(( ($(date -d 2027-01-23T05:00:00Z +%s) - $(date +%s)) / 86400 ))
```

```text
111
```

## Keep watching it

A one-off check doesn't help on the day a renewal fails. A
[domain expiry monitor](/domain-expiry-monitoring) reads the registration
from RDAP (with a WHOIS fallback) on a schedule and starts with a **Domain
Expiry** rule already on: a warning incident at 30 days, an optional critical
level that counts as downtime and pages on-call, and up to five reminder days
before the date. Registries that publish no date leave the monitor **Unknown**
instead of raising a false alarm.

## FAQ

**How do I find out when my domain expires?**
Look it up in an RDAP or Whois tool, or in your registrar's dashboard. The
registry's RDAP date is authoritative: it changes only when a renewal has
actually been processed.

**What happens when a domain expires?**
It usually stops resolving within days, taking the website and email with
it. For generic TLDs it then passes through a grace period and a 30-day
redemption period before being deleted and released. Our
[Whois guide](/blog/how-to-find-who-owns-a-domain) shows the other
registration fields.

**Can I renew a domain after it expires?**
Usually yes, during the grace period at the normal price and during
redemption for a restore fee. Once it reaches `pending delete`, it can't be
restored and becomes available to anyone after about five days.

---

Canonical page: https://watchfor.io/blog/how-to-check-when-a-domain-expires · All articles: https://watchfor.io/blog/all.md · Site guide: https://watchfor.io/llms.txt
