Skip to content

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.