Check whether a domain name is available
Every way to name what to check, and what the table looks like each time.
Prerequisites
reserveinstalled and on yourPATH. See Install reserve.- Outbound network access to reach a registry.
Check one name across a group of extensions
$ reserve your-domain-name --group tech
DOMAIN STATUS SOURCE TIME NOTE
- your-domain-name.com TAKEN registry 1104ms
+ your-domain-name.net AVAILABLE registry 842ms
+ your-domain-name.xyz AVAILABLE registry 917ms
- your-domain-name.io TAKEN registry 1288ms
+ your-domain-name.app AVAILABLE registry 963ms
3 available 2 taken 0 unknown (5 checked)--group (short -g) takes a group name. Repeat it or comma-separate several
values to check the union of two groups:
reserve example -g tech -g creativeCheck specific extensions
$ reserve your-domain-name --tld com,net,io
DOMAIN STATUS SOURCE TIME NOTE
- your-domain-name.com TAKEN registry 1104ms
+ your-domain-name.net AVAILABLE registry 842ms
+ your-domain-name.io AVAILABLE registry 917ms
2 available 1 taken 0 unknown (3 checked)--tld (short -t) takes one or more extensions, comma-separated or repeated.
Check a full domain exactly as typed
$ reserve example.com.bd
DOMAIN STATUS SOURCE TIME NOTE
+ example.com.bd AVAILABLE text 656ms
1 available 0 taken 0 unknown (1 checked)A name carrying a dot is treated as a domain you're asking about directly, and
is checked exactly as given, whatever extensions the run otherwise selected.
This works even for a domain under an extension that isn't in reserve's
catalog.
Check several names at once
$ reserve alpha bravo charlie --tld com
DOMAIN STATUS SOURCE TIME NOTE
- alpha.com TAKEN registry 1050ms
+ bravo.com AVAILABLE registry 889ms
- charlie.com TAKEN registry 931ms
1 available 2 taken 0 unknown (3 checked)A name repeated in the input, whether typed twice or given once as an argument
and once inside --names-from, is asked once, and the answer is copied to every
row that named it.
Read names from a file
reserve --names-from shortlist.txtOne entry per line. Commas also separate, # starts a comment, blank lines are
skipped, and duplicates are dropped:
alpha
bravo, charlie
# delta is not a real contender
echoUse --names-from - to read the list from standard input instead of a file:
printf 'alpha\nbravo\n' | reserve --names-from - --tld com--tlds-from zones.txt reads a list of extensions the same way. Only one of the
two can read from standard input at once.
Choose extensions by group
Run reserve groups to list every group you can pick from, grouped by family:
$ reserve groups
By popularity
top-10 10 The ten most registered extensions
top-25 25 The twenty-five most registered
top-50 50 The fifty most registered
top-100 100 The most registered extensions in the catalog
Hand-picked
popular 25 A short sweep of the extensions most people actually type
classic 5 The original generic extensions
country-codes 149 Every two-letter country extension
domain-hacks 19 Country extensions used away from their country meaning
registrable 272 Every extension the public can buy
everything 314 Every known extension, including zones nobody can buy
By industry
tech 34 Software, infrastructure, and developer tools
shop 15 Online stores and direct selling
business 154 General company and corporate use
media 27 Publishing, news, video, and audio
finance 25 Banking, investment, and payments
health 10 Clinics, wellbeing, and medical practice
education 15 Schools, courses, and training
food 10 Restaurants, cafes, and hospitality
travel 9 Tourism, flights, and holidays
realestate 11 Estate agents, rentals, and listings
legal 9 Law firms and professional practice
crypto 7 Digital assets and exchanges
creative 31 Design, art, and portfolios
nonprofit 12 Charities, foundations, and causes
By region
south-asia 26 Bangladesh, India, Pakistan, and neighbours
southeast-asia 15 Singapore, Malaysia, Indonesia, and neighbours
east-asia 10 China, Japan, Korea, Taiwan, and Hong Kong
europe 40 European country codes and the EU zone
north-america 3 United States, Canada, and territories
latin-america 13 Central and South America
africa 18 African country codes
middle-east 13 Gulf states, Israel, and Turkey
oceania 13 Australia, New Zealand, and the PacificSee one family at a time:
reserve groups --family regionAccepted --family values: industry, region, popularity, curated.
Browse a group's extensions without checking anything:
$ reserve extensions --group south-asia
EXTENSION RANK KIND USED FOR
in 16 country India · business
pk 105 country Pakistan · business
np 108 country Nepal · business
af - country Afghanistan · business
ai.bd - country Bangladesh · tech
bd - country Bangladesh · business
co.bd - country Bangladesh · business
...
1-23 of 23 extensions · page 1 of 1 · sorted by popularity (most used first)Checking a name contacts every extension the selection holds, however large the
group. Ask for --page or --page-size to work through it in slices instead;
see Filtering, sorting, and paging.
Or let the picker choose for you
reserve your-domain-nameRun reserve with just a name, at a terminal, and it opens an interactive
picker instead of guessing which extensions to check. See
Use the interactive picker.
How casually typed names are handled
A name typed as a person would speak it is converted to a form a registry accepts, and the change is reported rather than applied silently:
$ reserve "My Cool Startup!" --tld com
note: `My Cool Startup!` is not a name a registry can hold, so `my-cool-startup` is being checked
DOMAIN STATUS SOURCE TIME NOTE
+ my-cool-startup.com AVAILABLE registry 874ms
1 available 0 taken 0 unknown (1 checked)Names written in Bengali, Arabic, or any other script keep every mark their
writer typed (only runs of whitespace collapse to a hyphen) because stripping
punctuation from those scripts deletes characters that carry meaning and would
check a different name. Typing a name that's already lowercase and clean, like
example, triggers no notice at all.
Reading the result table
$ reserve your-domain-name --tld com,net,io,dev,com.bd,net.bd
DOMAIN STATUS SOURCE TIME NOTE
- your-domain-name.com TAKEN registry 1322ms
+ your-domain-name.com.bd AVAILABLE text 656ms
+ your-domain-name.dev AVAILABLE registry 1354ms
+ your-domain-name.io AVAILABLE registry 1286ms
- your-domain-name.net TAKEN registry 1113ms
+ your-domain-name.net.bd AVAILABLE text 627ms
4 available 2 taken 0 unknown (6 checked)Each row is marked + for available or - for taken, so the symbol carries the
meaning too and the table still reads correctly without colour. STATUS is one of
AVAILABLE, TAKEN, or UNKNOWN; a zone the public can't register under comes
back UNKNOWN with not publicly registrable in its note column. UNKNOWN
means the lookup couldn't be answered; it's never a synonym for available. See
How a verdict is reached for what each status
actually means and why.
The table goes to stdout; progress and the start/finish notes go to stderr, so a
pipe receives only data. Add -a/--available-only to print and save only the
free names, or --json for machine-readable output:
$ reserve your-domain-name --tld com,net --available-only
DOMAIN STATUS SOURCE TIME NOTE
+ your-domain-name.net AVAILABLE registry 842ms
1 available 0 taken 0 unknown (2 checked)The exit code is 0 when at least one name is available, 1 when the sweep ran
and nothing is, and 2 when the arguments were wrong. See
Output and exit codes for the full contract,
or CLI commands and flags for every flag reserve
accepts.