Access to database files

Samples

The same 100 records from the 2026-11 release in every variant and rendering, so the files can be compared line by line. Uncompressed, unlike the production files.

How to download the datafeed files

Downloading via HTTPS

Note: if the IP allowlist is enabled in your account settings, HTTPS downloads are accepted only from the listed IP addresses; other requests are rejected with 403 "Your IP address is not on the allowlist".

Downloading via FTP

Note: if the IP allowlist is enabled in your account settings, it applies to data feed downloads as well as to API calls: FTP, FTPS and HTTPS requests from IP addresses that are not on the list are rejected with 403 "Your IP address is not on the allowlist". Add the IP addresses of every machine that downloads the data feeds before enabling it.

Downloading via FTPS

Read more about the FTPS connection: https://en.wikipedia.org/wiki/FTPS.

Our FTP server supports explicit FTP over TLS encryption. You may configure your FTP client to use explicit FTP over TLS encryption for secure communications.

Our FTPS server is accessed using the same paths and API keys as a regular FTP server, the instructions for which are described above. To connect via FTPS, select the "Require explicit FTP over TLS" encryption option in your FTP client, if it supports it. FileZilla configuration example:

explicit FTP over TLS encryption

Command-line examples

Directory URLs return an HTML index. Files support HEAD and byte ranges, so interrupted HTTPS downloads resume with curl -C - or wget -c. Please keep downloads to a couple of parallel connections: the server is shared.

# list a release
curl -u user:$API_KEY https://download.whoisxmlapi.com/datafeeds/WHOIS_Database/monthly/2026-11/json/

# download every CSV part of one variant, resuming interrupted files
URL=https://download.whoisxmlapi.com/datafeeds/WHOIS_Database/monthly/2026-11/csv/
VARIANT=full   # full | regular | simple
curl -s -u user:$API_KEY "$URL" | grep -o "whoisdb[^\"]*\.$VARIANT-[0-9]*\.csv\.zst" | sort -u \
  | xargs -I{} curl -u user:$API_KEY -C - -o {} "$URL{}"

# stream one part into your tool without storing it
curl -s -u user:$API_KEY "${URL}whoisdb.2026-11-02.full-00000001.csv.zst" | zstd -dc | head

Decompression

Monthly database files are compressed with zstd (Zstandard). Any zstd decoder reads them with default settings; a decoder needs about 140MB of memory per stream for full, much less for regular and simple. A file is a sequence of independent zstd frames with size markers, so pzstd (it ships with the zstd package) decompresses a single file on all cores.

zstd -dc whoisdb.2026-11-02.full-00000001.csv.zst | head               # decompress to stdout
zstd -t whoisdb.2026-11-02.full-00000001.json.zst                     # integrity check
pzstd -dc -p 8 whoisdb.2026-11-02.full-00000001.json.zst > part.json  # parallel
  • Python: the zstandard package, or the compression.zstd module of the standard library from Python 3.14; pandas read_csv(…, compression="zstd").
  • Read .zst natively: Spark, Hive, Athena, Snowflake, Redshift COPY, ClickHouse, DuckDB.
  • BigQuery load jobs accept only gzip for CSV/JSON: recompress first, e.g. zstd -dc part.csv.zst | gzip > part.csv.gz.
  • Quarterly database files are gzip: use unpigz rather than gunzip.