Skip to main content

Inspect and save results

5 min readStableIntermediate

Look closer at one name, preview a run before it touches the network, or write results out to files. Every flag below with its own sample output.

Prerequisites

Registrar details

--detailsboolean

Registrar, registrar ID, created/updated/expiry dates, status, nameservers, DNSSEC, and abuse contact, whichever fields the registry actually supplied. A field the registry didn't send is left out, never printed blank. Every date is converted to RFC 3339 first, whichever format the registry sent it in.

CONSOLE
CONSOLE
$ reserve example.com --details
 
   DOMAIN       STATUS  SOURCE      TIME  NOTE
-  example.com  TAKEN   registry  1104ms
 
  registrar:     Example Registrar, Inc.
  registrar id:  292
  created:       2001-08-14T00:00:00Z
  updated:       2024-03-02T00:00:00Z
  expires:       2027-08-13T00:00:00Z
  status:        client transfer prohibited
  nameservers:   ns1.example.com, ns2.example.com
  dnssec:        signed
  abuse:         abuse@example-registrar.example
 
0 available  1 taken  0 unknown   (1 checked)

A date the registry sends in a format the tool doesn't recognize is passed through exactly as it arrived, and --json names that field in the registration record's unparsed_dates list, so you can tell a converted date from a raw one.

Which server answered

--responderboolean

Names the server that answered.

CONSOLE
CONSOLE
$ reserve example.com --responder
 
   DOMAIN       STATUS  SOURCE      TIME  NOTE
-  example.com  TAKEN   registry  1104ms
 
  answered by: rdap.verisign.com
 
0 available  1 taken  0 unknown   (1 checked)

DNS records

--dnsboolean

Runs an extra DNS lookup and prints A, AAAA, CNAME, NS, MX, TXT, and SOA records, one row per type. A type with no answer is marked absent, and a type the resolver couldn't settle is marked unknown with the reason. No type is ever left out of the answer.

CONSOLE
CONSOLE
$ reserve example.com --dns
 
   DOMAIN       STATUS  SOURCE      TIME  NOTE
-  example.com  TAKEN   registry  1104ms
 
  a:     93.184.216.34
  aaaa:  2606:2800:220:1:248:1893:25c8:1946
  cname: absent
  ns:    ns1.example.com, ns2.example.com
  mx:    absent
  txt:   "v=spf1 -all"
  soa:   ns1.example.com
 
0 available  1 taken  0 unknown   (1 checked)

In --json, dns is a list of [type, record] pairs. Each record carries a state of present, absent, or unknown: a present type also carries values, and an unknown type also carries a reason.

dnsarray of [string, object]

One entry per record type, in the order shown above.

JSON
JSON
{
  "dns": [
    ["a", { "state": "present", "values": ["93.184.216.34"] }],
    ["cname", { "state": "absent" }],
    ["soa", { "state": "unknown", "reason": "timed out" }]
  ]
}

Where to buy an available name

--where-to-buyboolean

Prints only for a name that's available: a link to the registry's own page, plus prefilled registrar searches. These are searches, not an offer, and not a claim that a given registrar carries that extension. No price is shown.

CONSOLE
CONSOLE
$ reserve example-new-startup.io --where-to-buy
 
   DOMAIN                      STATUS     SOURCE      TIME  NOTE
+  example-new-startup.io  AVAILABLE  registry   917ms
 
  registry: https://www.iana.org/domains/root/db/io.html
  buy at:   https://porkbun.com/checkout/search?q=example-new-startup.io
  buy at:   https://www.namecheap.com/domains/registration/results/?domain=example-new-startup.io
  buy at:   https://www.dynadot.com/domain/search?domain=example-new-startup.io
  buy at:   https://www.namesilo.com/domain/search-domains?query=example-new-startup.io
 
1 available  0 taken  0 unknown   (1 checked)

Which source answered, and why

--explainboolean

Shows which source answered and why, in the order they were tried.

--rawboolean

The winning source's own unprocessed response.

CONSOLE
CONSOLE
$ reserve example.com --explain --raw
 
   DOMAIN       STATUS  SOURCE      TIME  NOTE
-  example.com  TAKEN   registry  1104ms
 
  tried:
    registry (rdap.verisign.com): found a registration record
 
  raw response:
    {"objectClassName":"domain","handle":"2336799_DOMAIN_COM-VRSN", ...}
 
0 available  1 taken  0 unknown   (1 checked)

--explain and --raw combine: together they show the whole trail plus the winning source's raw text; --raw alone shows just that raw text. With --json, these sections carry through as extra fields (dns, registry_page, buy_at) on each finding.

Everything at once

--fullboolean

Turns on --details, --responder, --dns, --where-to-buy, --explain, and --raw together. Conflicts with naming any of them individually, so pass --full on its own.

Bash
Bash
reserve example.com --full

See the plan before it runs anything

CONSOLE
CONSOLE
$ reserve example -g tech --dry-run
 
Dry run
  lookups:     5
  names:       example
  extensions:  com, net, xyz, io, app
  source:      auto
  timeout:     10s
  pacing:      24 at once, 24 per registry, no fixed rate
  writes:      nothing
 
note: no registry was asked, and nothing was written
Bash
Bash
reserve example -g tech --dry-run --json

A dry run asks no registry and writes nothing. It reports the number of lookups, the names and extensions it would check, the source it would use, the timeout and pacing it would keep, and the full path of every file it would write, marking any that's already there.

Save results to files

--saveboolean

Writes into the current directory.

-o, --outpath

Writes into a directory you name instead. It implies saving on its own, so you don't also need --save. The two can't be given together.

--jsonboolean

Prints JSON instead of the table on screen, and (combined with --save) writes the three files as JSON arrays too.

--save-jsonboolean

Writes the files as JSON while the screen keeps its normal table. This is the difference from plain --json, which changes both. Needs --save or --out.

--appendboolean

Merges into files already there instead of refusing. Needs --save or --out.

CONSOLE
CONSOLE
$ reserve example -g tech --save
 
   DOMAIN       STATUS     SOURCE      TIME  NOTE
-  example.com  TAKEN      registry  1104ms
+  example.net  AVAILABLE  registry   842ms
+  example.xyz  AVAILABLE  registry   917ms
 
2 available  1 taken  0 unknown   (3 checked)
wrote example-available.txt
wrote example-taken.txt
Bash
Bash
reserve example -g tech --out results
reserve example -g tech --save --json
reserve example -g tech --save --append
reserve example -g tech --save --save-json

Result

Saving never replaces what you see: the table and tally print as usual, and the files are written as well. A run writes up to three files, one per outcome: <label>-available.txt, <label>-taken.txt, <label>-unknown.txt (an outcome with nothing in it writes no file). Pass -a/--available-only and only the available file is ever produced.

Each file is named after what you searched. Checking one name across many extensions gives one set of files, since the extension varies and the search doesn't. Checking several names names the files after the first plus a count: alpha-and-2-more-available.txt for three names. The full path of every file written is printed when the run ends.

Only letters and digits survive into the file name, lowercased, with anything else becoming a hyphen, capped at 48 characters. A name written in another script keeps its own letters. A repeat of the same search is refused before the first lookup rather than after the whole sweep:

CONSOLE
CONSOLE
$ reserve example -g tech --save
 
error: example-available.txt is already there
  try: pass --append to merge into it, or --out <dir> to write somewhere else
  code: output.unwritable

Files are written to a temporary file and renamed into place, so an interrupted run never leaves a half-written file, and stopping with Ctrl-C still prints the tally and writes whatever was already learned.

On Linux, macOS, and the BSDs, a result file is created readable by its owner only, and a directory reserve creates for you is too. A full record carries the registrar and its abuse contact, and the file names alone say what was searched for. On Windows, neither carries an access list of its own; both inherit the rights of the directory you chose.

Was this page helpful?

© 2026 Reserve. All rights reserved.