Domains
Domain portfolio expiry checker
Paste up to 20 domains and get the registrar, expiry date, status and days left for every one.
Free, no accountLive check
Result
The verdict appears here once you press Check expiry dates.
What this is
This bulk domain expiry checker takes the list you already keep somewhere - a spreadsheet, a brand sheet, the endings you registered defensively and never think about - and asks each name’s own registry when it expires, so the answer comes from the record rather than from whichever registrar dashboard you happened to log into.
An expiry date lives at the registry, one registry per ending, and is published in its RDAP answer as an event called expiration (RFC 9083). That is the date renewals are measured against, and it is the same date no matter which registrar sold the name or what their control panel shows after a renewal that has not been pushed through yet.
A portfolio fails one name at a time, usually the one nobody owns: a redirect domain from a rebrand, a typo variant bought for defence, a country ending for a market that closed. Checking the whole list in one pass is the only way those surface before an email nobody reads is the only warning you get.
How to read the result
Each row carries the sponsoring registrar, the expiration date, the whole days left to it, and the EPP status codes the registry returned verbatim. A row with a status like redemptionPeriod or pendingDelete has already passed its date, whatever the number of days says.
A row reading "Cannot check this ending" means the ending itself publishes no RDAP service, so there is no server to ask and never will be until it does. A row reading "The registry did not answer" means its registry does publish one and failed this time, so the same list is worth running again in a few minutes. Both are holes in the report rather than good or bad news.
This is the first check in a routine, not the only one: our guide Holding a domain portfolio: renewals, status codes and the names that attack yours covers what to do once a row comes back close to its date - what a renewal or transfer actually costs, how to read the EPP status code on a row, and the other checks worth running on the same list.
Common mistakes
What goes wrong most often, and how to tell.
- Reading the expiry date as the day you lose the nameDeletion comes later and in stages: an auto-renew grace period set by the registrar, then deletion, then a 30-day redemption grace period that every gTLD registry bar the sponsored ones must offer, during which only the deleting registrar can restore the name. Each stage is survivable; each costs more than renewing on time.
- Trusting auto-renew because it worked last yearAuto-renew is a registrar feature and an expired card breaks it silently. ICANN requires a registrar to disclose its auto-renewal and deletion policy to the registrant, which means that policy differs from registrar to registrar - and none of it appears in the registry answer this report is built from.
- Letting a blank cell pass as a clean rowThree different things can leave the expiry column empty: the registry published no expiration event, the ending could never be reached, or the name is not registered to anyone. Only one of those is harmless, and the status column is what tells them apart.
- Checking only the endings you think are importantThe defensive registrations are the ones that lapse, and a lapsed lookalike of your own brand is worth more to a typosquatter than it ever was to you. Paste the whole list, including the endings you registered once and have not visited since.
Questions
What people ask about this tool.
- Because that is where ICANN’s Expired Registration Recovery Policy puts the first of the two reminders a gTLD registrar must send - one approximately a month before expiry and one approximately a week before, which the policy defines as 26 to 35 days and 4 to 10 days. A domain inside 30 days should already have been dealt with.
- Twenty per run, one per line or separated by commas, each line carrying its own ending. The cap is the same one the availability checker uses: it keeps a single request to a size every registry involved can answer without being hammered, and nothing is queued or stored for later.
- RDAP clients find a registry’s server through IANA’s bootstrap registry, defined in RFC 9224. An ending that publishes no entry there has no standard server to query, which is still true of a large number of country-code endings, so the row says the ending cannot be checked instead of showing a status nobody answered with.
- No. After expiry it typically sits in the registrar’s auto-renew grace period, and once deleted a gTLD name enters a 30-day redemption grace period in which the registrar that deleted it can restore it for a fee. ICANN’s deletion policy also requires deletion within 45 days of a registration agreement being terminated, so the window is finite either way.
- No. Price is a registrar matter and never appears in the registry’s RDAP answer, so this report names the sponsoring registrar for each row and leaves the number to them. A premium or recently repriced ending can renew for many times what it first cost.
Sources
Every fixed value here comes from the provider’s own documentation. These pages change, so each says the day it was last read.
- ICANN, “Expired Registration Recovery Policy” read 13 October 2026
- ICANN, “Expired Domain Deletion Policy” read 13 October 2026
- IETF, “RFC 9083: JSON Responses for the Registration Data Access Protocol (RDAP)” read 13 October 2026
- IETF, “RFC 9224: Finding the Authoritative Registration Data Access Protocol (RDAP) Service” read 13 October 2026
Use it from the API
The same check, as one request.