How a verdict is reached
Why does reserve say UNKNOWN instead of just guessing? Registries throttle
bulk clients, and the older lookup protocol carries no status codes: a refusal
arrives as ordinary prose down the same socket as a real answer. A tool that
can't tell the difference ends up reporting a whole zone as free the moment it
gets throttled. reserve treats every lookup it can't answer as unknown, with
the reason attached, and never as available.
Three sources, tried in order
Three sources are tried in order, and only the first two can actually prove a name is free:
- The registry's structured service. Authoritative. A "no such object" answer is a fact, not an inference. Covers roughly 1,200 extensions.
- The registry's text service, on port 43. The only source that answers for
many country extensions.
reservebundles a table of servers generated from IANA's own records, plus servers confirmed by live query that IANA doesn't publish. - DNS. Fast, and only ever proves a name is in use. A name absent from DNS may be registered and never delegated, so DNS alone never produces an "available" verdict. Its absence just means "unknown," not "free."
Pick one source directly with --source registry, --source text, or
--source dns. Left alone, reserve tries all three in that order. When more
than one source fails to answer, the more useful reason wins. A registry saying
"rate limited" outranks DNS staying silent, so a later, vaguer failure never
buries an earlier, more actionable one.
What the four statuses mean
AVAILABLE: a registry stated the name is unregistered.TAKEN: a registry returned a record, or DNS proved the name is in use.UNKNOWN: the lookup couldn't be answered. The reason is always attached: rate limited, declined, timed out, unreachable, or unreadable. This is never a synonym for available.- Not publicly registrable: the extension exists, but the public can't register under it.
Meaning never rides on colour alone. Each status also carries its own symbol on
screen (+, -, ?), so the table still reads correctly without colour.
Why the text protocol needs special care
The older protocol has no status codes. "Not registered," "you are asking too fast," and "I do not serve that extension" all arrive as ordinary prose down the same socket, which is why tools built on it tend to report whole zones as free the moment they're throttled.
reserve gathers every signal in an answer and weighs them, rather than taking
the first phrase that matches:
- A verdict is read from the record, not from the legal notice around it. Several registries close every answer with wording like "should you wish to contact the registrant," or state their service is rate limited on every reply they send. Neither is evidence about the name.
- Matching is negation-aware, because a registry that answers
AvailableorNot Availablewould otherwise have every taken name in its zone reported as free. - An answer about a different name is refused rather than applied to the name you asked about.
- A name a registry states is blocked or reserved is reported as such, not as available and not as an error.
- A reply cut short right after the registry has spoken is kept as an answer, so a throttled registry reads as rate limited rather than as an unreachable network.
The same caution applies where a phrase could just be part of the domain itself.
Checking unblocked.de doesn't match the marker "blocked," because the name is
set aside before markers are matched against the rest of the text.
Why there's no price column
reserve deliberately shows no prices. There's no single price for a domain
extension: two registrars pricing the same extension routinely land far apart,
in either direction. Registry premium names sit outside every published list and
can cost thousands. Published figures exclude taxes, which depend on where you
are, and wholesale prices move on scheduled dates.
A price column would imply a precision that doesn't exist. Check the price at
the registrar you actually intend to buy from. --where-to-buy gives you the
registry's own page plus prefilled registrar searches, in a fixed order. Those
are searches, not an offer, and not a claim that a given registrar carries that
extension.
See also
- Check whether a domain name is available: run
a check and choose a source with
--source. - Inspect and save results: see the
full trail with
--explain, or the raw answer with--raw. - CLI commands and flags: every flag mentioned above, in one reference.