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

Up to 20 domains, one per line or comma-separated. Each line needs its own ending.

Try

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.

Use it from the API

The same check, as one request.

Request
curl -X POST https://resellerhq.com/api/tools/domain-portfolio-expiry-checker \
  -H "Content-Type: application/json" \
  -d '{"domains":"brand.com\nbrand.net"}'
Response
{
  "tool": "domain-portfolio-expiry-checker",
  "input": {
    "domains": "brand.com\nbrand.net"
  },
  "result": {
    "verdict": {
      "tone": "warning",
      "headline": "1 of 2 expire within 30 days",
      "summary": "The findings name which ones, and how many days each has left."
    },
    "findings": [
      {
        "id": "expiring-within-30-days",
        "severity": "warn",
        "title": "1 domain expiring within 30 days",
        "detail": "brand.com in 19 days. Thirty days is the point ICANN’s Expired Registration Recovery Policy requires a gTLD registrar to have sent the first of its two renewal reminders, so anything inside this window should already be renewed or deliberately dropped rather than waiting on an email.",
        "fix": "Renew these now, or confirm at the registrar that auto-renew is on and the card on file still works."
      }
    ],
    "parts": [
      {
        "kind": "table",
        "title": "One row per domain, as the registry answered",
        "columns": [
          "Domain",
          "Registrar",
          "Expires",
          "Days left",
          "Registry status"
        ],
        "rows": [
          [
            "brand.com",
            "Example Registrar, LLC",
            "2026-11-01",
            "19 days",
            "clientTransferProhibited"
          ],
          [
            "brand.net",
            "Example Registrar, LLC",
            "2027-06-01",
            "231 days",
            "-"
          ]
        ],
        "mono": [
          0,
          2
        ],
        "proseColumns": [
          1,
          4
        ],
        "note": "Days left counts whole days to the registry’s expiration event, not to the day the name is released."
      }
    ],
    "lookups": [
      {
        "label": "RDAP for brand.com",
        "value": "answered, expires 2026-11-01T00:00:00Z"
      },
      {
        "label": "RDAP for brand.net",
        "value": "answered, expires 2027-06-01T00:00:00Z"
      }
    ],
    "limits": [
      "Whether a domain will actually renew itself is a registrar setting, not registry data: auto-renew, the card on file and each registrar’s own deletion timing are invisible here, and ICANN only requires a gTLD registrar to publish that policy, not to publish it in a way this tool can read.",
      "An ending with no RDAP service in IANA’s bootstrap registry cannot be checked at all, and is shown as such rather than guessed. That covers a large share of country-code endings.",
      "Twenty domains per run, so a bigger portfolio takes several runs. Nothing is stored between them: this is a snapshot you read now, not a watch that will email you later.",
      "The expiry date is the registry’s, and the day a lapsed name is finally released depends on the registrar’s grace period and deletion schedule, which can differ by more than a month from registrar to registrar."
    ]
  }
}

Resell domain registration across the endings your customers ask for, at your own price.

Get started

Company names and logos are trademarks of their owners, shown only to identify each service.