Skip to content

Domain Availability Checker

How the Domain Availability Checker asks a domain's registry over RDAP whether the name is registered, reads the registration's life and status codes, and what each finding means for someone who wants the name or already owns it.

Open Markdown

The tool page is tamperbox.dev/domain-availability. It opens with a live lookup of tamperbox.dev and takes a domain or a saved RDAP record. This page is the long version: where the answer comes from, what “no registration found” does and does not prove, how each status code and date is read, and what to do next whether you want the name or own it.

Where processing happens: a domain is sent to the Tamperbox server, which finds the registry for its ending in the IANA bootstrap list and asks that registry’s RDAP service for the domain, then returns the record unchanged. The record is read in your browser. Pasted RDAP JSON never leaves the browser. History stays in memory in the open page. Explicit links to another tool may temporarily keep a one-use transfer in browser session storage; transfers expire after one minute and do not put the input in the URL.
  1. Is the name registered? Whether the registry holds a record for it.
  2. Since when, and until when? The registration and expiry dates, drawn as one line with today marked.
  3. What holds it? The status codes the registrar and registry set: locks, holds, grace periods, redemption.
  4. Is it about to change hands? An expiry close at hand, a name in redemption or pending deletion, with an estimated drop date.
  5. Is the owner protected? A missing transfer lock, and the registry lock when present.

It does not register names, quote prices, or check trademarks. For the full record, including nameservers, DNSSEC data and contacts, use the WHOIS & RDAP Lookup.

example.com, checked when you stop typing (or at once on Enter). A pasted address is reduced to what the tool takes: https://www.example.com/page becomes www.example.com, an email address becomes its domain, quotes and brackets are dropped. Text that contains nothing usable stays as pasted with an explanation. Typing is never rewritten mid-word, and Break it loads are never cleaned.

Enter the registered name itself. Registries hold records for registered domains, not for names below them, so www.example.com usually returns no record even when example.com is registered. If a subdomain has no record, enter the registered domain yourself; removing one label is not a reliable public-suffix rule.

A domain record saved from an RDAP service (it starts with { and has "objectClassName": "domain"), pasted or dropped as a file up to 256 KiB. It is read in the browser with the same rules; anything else is refused with “Not readable JSON” or “Not an RDAP domain response”.

“Registered: example.com is 20 years old and expires in 300 days”, “Registered, expired: … expired N days ago”, “Not available yet: … expired and is being released” with an estimated drop date, or “No registration found”. The chips say registered or being released, when it expires, and the first status that blocks the domain; each scrolls to its section.

The lifecycle checks, worst first: expiry, holds, the transfer lock, the registry lock, an unsigned delegation. Passing checks are folded when there are several. The count reports problems and things to check, or “No problems”. The finding reference lists them all.

A line from registration to expiry with today marked (it turns amber within 30 days of expiry and red after it), then date facts: registered and how long ago, expires and how soon, last changed, and the registrar name.

Each status the record carries, with its plain name, what it means and a badge: locks are normal protection (PASS), holds stop the domain resolving (FAIL), grace periods are information.

History appears below the result evidence after Break it or Heal it changes the input. Revert restores the input before the latest recorded change; Reset input returns to the input before the first recorded change. Typing or pasting a new input starts a new history. Restoring a live input runs the lookup again, rather than restoring a saved response.

Take it further offers the expiry as a Unix timestamp and, when the registry reports a signed delegation, a DNSSEC check for the domain. When a longer name has no record, Heal it may offer the name one label up. This is a suggested next lookup, not a determination of the registrable domain.

The server reads the IANA RDAP bootstrap file for domain names and picks the service for the longest matching ending (RFC 9224, section 4). Only HTTPS service URLs are used. An ending with no RDAP service gives “No HTTPS RDAP service is published for this name or address. This does not mean it is available.” The query is domain/<name> under that service (RFC 9082, section 3.1.3); up to three redirects are followed, each to a public HTTPS address.

RFC 7480, section 5.3: a server with no data “returns a 404 (Not Found) response code. Optionally, it MAY include additional information … in the HTTP entity body.” The tool treats a 404 as “no registration” only when it carries RDAP evidence: an error document with errorCode 404, or an empty body served as application/rdap+json or application/json (Verisign, which runs .com and .net, sends no body). The empty-body case requires a successful body read and a JSON or RDAP JSON media type, optionally with parameters. A failed body read or an HTML 404 from a gateway remains an error or inconclusive answer, not evidence of a free name. Other errors are reported as errors (rate limiting has its own message).

No record gives the INFO verdict “No registration found” and an INFO finding, “No registration record”. Both explain that a missing record does not guarantee availability.

The record must be an RDAP domain object (RFC 9083, section 5.3). The tool reads the registration, expiration and last-changed events (section 4.5), the status values (section 4.6), the registrar entity with its IANA ID, and secureDNS.delegationSigned. Status values are the EPP statuses of RFC 5731, section 2.3 and RFC 3915, section 3.1 as mapped into RDAP by RFC 8056, section 2 (“client transfer prohibited” for clientTransferProhibited); they are compared without spaces and case.

Status Shown as Badge
active, ok Active PASS
client/server transfer, delete, update prohibited Transfer lock, Delete lock, Update lock (Registry … for server) PASS
client renew prohibited Renew lock: often a billing or dispute hold CHECK
client hold, server hold On hold: the domain does not resolve FAIL
add, renew, auto-renew, transfer period Just registered, Just renewed, Auto-renewed, Just transferred INFO
pending transfer, pending restore Transfer pending, Restore pending CHECK
redemption period Expired, redeemable FAIL
pending delete Being deleted FAIL
inactive No nameservers CHECK

Unknown statuses are listed as they are, as INFO.

The findings use rounded whole days until expiry. A timestamp just past expiry can therefore still produce an “Expires” warning until rounding becomes negative; the verdict and date fields compare the timestamp directly. Applied in this order:

Check Finding Level
Redemption period or pending delete “Expired and on its way out” FAIL
Otherwise, expiry date passed “Expired N days ago” FAIL
Otherwise, expiry within 30 days “Expires in N days” CHECK
Otherwise, expiry known “Expires in N days” PASS
Client or server hold “On hold” FAIL
No transfer lock, and not pending or in redemption “No transfer lock” CHECK
Server transfer and server update prohibited “Registry lock” PASS
delegationSigned false “Delegation not signed” INFO

For a domain in redemption or pending delete, the verdict estimates when it could be registered again: the last change plus 35 days in redemption, or plus 5 days in pending delete. ICANN’s Expired Registration Recovery Policy requires gTLD registries to “offer a Redemption Grace Period (“RGP”) of 30 days immediately following the deletion of a registration”; pending delete commonly lasts five days. These are estimates: registries differ, and country-code endings follow their own rules.

Being released (“Not available yet”, CHECK) comes first; then an expired registration (“Registered, expired”, CHECK); otherwise “Registered” at CHECK level when a finding needs attention and INFO otherwise. No record gives “No registration found” (INFO).

Specification Sections used How the tool applies them Where it stops
RFC 7480, RDAP over HTTP 5.3 negative answers A 404 with RDAP evidence is no registration An HTML 404 is not trusted as an answer, stricter than the RFC requires
RFC 9082 (obsoletes RFC 7482), queries 3.1.3 domain path Exact-name lookups only No search queries
RFC 9083 (obsoletes RFC 7483), responses 4.5 events, 4.6 status, 5.3 domain object Read in the browser Remarks and notices are not shown here; WHOIS shows the raw record
RFC 9224 (obsoletes RFC 7484), bootstrap 4 Longest matching ending, HTTPS only Endings without a service are reported, not guessed through WHOIS
RFC 5731, RFC 3915, RFC 8056 Status values and their RDAP mapping Plain names and weights per status
ICANN ERRP Redemption Grace Period The drop-date estimate Country-code registries follow their own policies
Finding Level Source What it means What to do
No registration record (finding); No registration found (verdict) INFO RFC 7480 5.3 No record; availability unknown Register it
Expires in N days (more than 30) PASS RFC 9083 4.5 Paid up
Expires in N days (30 or fewer) CHECK Lapses soon without renewal Renew
Expired N days ago FAIL Past the reported expiry; renewal rights depend on policy Renew now, or wait if you want it
Expired and on its way out FAIL RFC 3915 3.1 Redemption or pending delete Restore or backorder
On hold FAIL RFC 5731 2.3 The domain does not resolve Ask the registrar why
No transfer lock CHECK RFC 5731 2.3 The domain can be moved with its auth code Turn the lock on
Registry lock PASS RFC 5731 2.3 Server transfer and update restrictions are present; process is registry-specific
Delegation not signed INFO RFC 9083 5.3 No DS at the registry; DNSSEC is not in use See the DNSSEC Checker
  1. Search the exact name at a registrar; it confirms availability and the price (premium names cost more).
  2. Register it for a year or more, with auto-renew on and the transfer lock on.
  3. Check here: the record appears when the registry publishes it; an add-period status may appear.

Turn on auto-renew at the registrar and confirm the payment card; check here after the renewal, when the expiry moves forward a year. If the registrar shows a renew lock, ask why: it is often a billing or dispute hold.

If it is yours, ask your registrar to restore it from redemption now; the fee rises and the window closes about 30 days after deletion. If you want it, place a backorder or check here after the estimated drop date. Names in redemption do not resolve and cannot be transferred.

Terminal window
# Find the RDAP service for the ending in the IANA bootstrap file, then ask it
curl -s https://data.iana.org/rdap/dns.json | grep -o '"https://[^"]*verisign[^"]*com[^"]*"' | head -1
curl -s -o /dev/null -w '%{http_code}\n' https://rdap.verisign.com/com/v1/domain/example.com

200 means registered; 404 means the registry has no record.

Every case is a sample registry record on the reserved .example zone, because a registration’s life is a state of the world rather than an edit to your input.

Case Name What it shows
Not registered harborsupply-marine.example No registration found
Expires in two weeks dockside-tools.example Expiry close at hand, and no transfer lock
Expired, redeemable anchor-chandlery.example Being released, with an estimated drop date
Registered last week harbor-supply-store.example Just registered (add period), transfer-locked

The page opens with a live RDAP lookup of tamperbox.dev. First check whether a registration record was returned. If it was, read the creation and expiration events, then the status codes. Do not infer an exact renewal deadline from the age label or treat a reported expiry as a promise of public release.

Compare the registry’s events with the account at the registrar if you control the domain. Registrar billing dates and registry expiration events can differ, particularly around an auto-renew period. A server transfer restriction and an ordinary client lock are different evidence; neither supplies the private account procedure required to transfer or restore a name.

Choose Expired, redeemable in Break it for a reserved example of redemption. The estimated release date illustrates the calculation, not a reservation or a guarantee that the name will be offered for registration. Heal it restores the earlier input and repeats a live lookup when appropriate. The opening registration, remaining days and statuses are intentionally not frozen in this guide.

Search the Tamperbox MCP catalog for domain_availability, inspect its schema, and supply domain. A found record returns registered: true, registrable: false, raw evidence, parsed registration and checks. A confirmed RDAP not-found response returns registered: false and registrable: null; null means availability is unknown. Other failures remain errors. Browser fixtures are not a promise of equivalent public MCP lookup results. Keep these warnings with any conclusion:

  • No registration record is not a guarantee of availability; a registrar confirms it.
  • One registry record at one moment.
  • Drop dates are estimates.

See Connect an MCP client for the calling pattern and Security and privacy for where the domain travels.

Record the target, the time of the lookup, the relevant raw records and the resolver or registry that supplied them. Repeat a live lookup after a configuration change instead of assuming a restored input restores an old response. A saved RDAP object or pasted DNSSEC record set is a snapshot: its dates are assessed against the current clock, but its contents are not refreshed.

Separate absence from failure. A successful response with no applicable record, a rejected input, a timeout and an upstream error support different conclusions. Preserve an error when a query could not complete; do not replace it with a claim that the record does not exist. When sharing findings, include the narrow observation and the relevant limitation rather than only the verdict label.

  • One registry record, at one moment.
  • Reserved, premium and blocked names can be missing from RDAP and still not be available.
  • Endings whose registry publishes no RDAP service cannot be checked.
  • Drop dates after redemption are estimates.
  • The Break it cases use sample records on the reserved .example zone.
  • History stays in memory in the open page. Explicit links to another tool may temporarily keep a one-use transfer in browser session storage; transfers expire after one minute and do not put the input in the URL.