All options
Every flag ds accepts, captured from the binary's own --help at build time — so this page cannot fall behind a release.
Check domain availability over RDAP with a WHOIS fallback.
Examples:
ds apple --tld all
ds apple --tld com,net --details
ds apple,orange,bangla,english --tld com,net
ds @names.txt --tld popular --available-only --save
ds apple --tld all --level second
ds apple --tld com,io --where
ds apple --tld all --private only
ds apple google --tld popular --whois --dns-records
ds apple.com --details --registry
ds --serve --port 8080
Usage: ds [OPTIONS] [NAMES]...
Arguments:
[NAMES]...
Name(s) to check: `apple`, `apple,orange,bangla`, `@names.txt`, or several arguments. A full domain (`apple.com`) is checked as-is when --tld is omitted
Options:
--serve
Serve the checks over HTTP instead of checking a name. See the "server options" below for the address, the limits and the cache
-t, --tld <TLD>
TLDs to check: comma separated list, `all`, `popular`, `rdap`, or `@file`
--whois
Query WHOIS as well and print the raw response
--details
Show registration details (registrar, dates, status, nameservers)
--registry
Show which registry answered (RDAP endpoint / WHOIS server)
--dns-records
Look up A/AAAA/NS/MX/TXT/CNAME/SOA records
--where
For available domains, show the registry, any restriction on who may register, anything the TLD requires of the name, and the registrars that sell the TLD
--all-info
Shorthand for --details --registry --whois --dns-records --where
--raw
Include the raw RDAP JSON in the output
--json
Print results as a JSON array instead of text
--available-only
Only print available domains. Saved files still cover every result
-c, --concurrency <CONCURRENCY>
Parallel lookups
[default: 20]
--per-host <PER_HOST>
Parallel lookups against any single registry server
[default: 4]
--timeout <TIMEOUT>
Per-request timeout in seconds
[default: 10]
-s, --save
Write the results to available.txt, unavailable.txt and, if any lookup failed, unknown.txt. With --json they are written as available.json, unavailable.json and unknown.json instead. Nothing is written without this
-o, --out-dir <DIR>
Directory for those files (implies --save). Defaults to the working directory
--append
Append to the output files instead of overwriting them (implies --save)
--level <LEVEL>
Which level the name is registered at: second (`apple.com`), third (`apple.co.uk`), or any. Filters the --tld list
Possible values:
- any: Both
- second: Straight under the TLD: `apple.com`, `apple.de`
- third: Under a multi-label suffix: `apple.co.uk`, `apple.com.au`
[default: any]
--tld-len <N|MIN-MAX>
Keep only TLDs of this length: `2` for the two-letter ccTLDs, or a range like `2-3`, `-3`, `4-`. Measured on the last label, so `co.uk` counts as 2
--cctld
Only country-code TLDs — the two-letter ones (`de`, `io`, `co.uk`). Shorthand for --tld-len 2
--private <MODE>
Brand and reserved TLDs, where the public cannot register at all (`aws`, `google`, `arpa`): exclude them, include them, or check only those. They are excluded from --tld all/rdap/popular unless you say otherwise; a TLD you name yourself is always checked
Possible values:
- exclude: Drop them from the TLD list. The default for `all`, `rdap` and `popular`
- include: Keep them, still marked PRIVATE in the results
- only: Check nothing else — useful for seeing what a sweep is skipping
--source <SOURCE>
Where to look: auto (RDAP, then the bundled WHOIS table, then an IANA referral), rdap (RDAP only), or whois (bundled whois.json only)
Possible values:
- auto: RDAP, then the bundled WHOIS table, then an IANA referral
- rdap: RDAP only
- whois: The bundled whois.json table only
[default: auto]
--rdap-file <PATH>
Custom RDAP server list, in the bootstrap format IANA publishes. Without this, ./rdap.json and ~/.config/ds/rdap.json are picked up automatically when they exist
--rdap-mode <RDAP_MODE>
What to do with that list: merge it over the IANA bootstrap (custom entries win) or use only it
Possible values:
- merge: Custom entries win, everything else comes from the built-in list
- only: Use the custom list alone
[default: merge]
--whois-file <PATH>
Custom WHOIS server table, in the same format as the bundled whois.json. Without this, ./whois.json and ~/.config/ds/whois.json are picked up automatically when they exist
--whois-mode <WHOIS_MODE>
What to do with that table: merge it over the bundled one (custom entries win) or use only it
Possible values:
- merge: Custom entries win, everything else comes from the built-in list
- only: Use the custom list alone
[default: merge]
--pricing-file <PATH>
Custom price table, in the same format as the bundled pricing.json. Without this, ./pricing.json and ~/.config/ds/pricing.json are picked up automatically when they exist
--pricing-mode <PRICING_MODE>
What to do with that table: merge it over the bundled one (custom entries win) or use only it
Possible values:
- merge: Custom entries win, everything else comes from the built-in list
- only: Use the custom list alone
[default: merge]
--no-iana
Never query whois.iana.org: no referral when a bundled WHOIS host is stale, and no registry names for --where
--refresh
Re-download the IANA RDAP bootstrap file
-q, --quiet
Suppress progress output; only the summary is printed
--no-color
Disable coloured output
-v, --version
Print the version and exit
-h, --help
Print help (see a summary with '-h')
Server options:
--host <ADDR>
Address to bind. Loopback by default and deliberately: a reachable `ds` server queries registries on behalf of whoever asks it to
[default: 127.0.0.1]
-p, --port <PORT>
Port to listen on
[default: 8080]
--max-lookups <N>
Most domains one request may ask about (names × TLDs). The default leaves room for `tld=popular` and rules out `tld=all`
[default: 50]
--rate-limit <N>
Requests per minute per client address; 0 turns the limit off
[default: 60]
--cache-ttl <SECONDS>
How long an answer is reused before the registry is asked again; 0 disables the cache
[default: 300]
--cors <ORIGIN>
Send `Access-Control-Allow-Origin` with this value, so a browser page may call the API. An origin (`https://example.com`) or `*`
These pages are generated from the docs in the repo, so they never drift from what ships with the binary.