Sign in

Downloads

Every dataset as a daily file, in csv.zst and json.zst. Sign in to download; the file reference describes every column, and the feeds page covers fetching with an API key.

A Basic plan covers the domains and DNS files; Pro adds DNS by vantage point, certificates and address history. See the plans.

2026-09-18Latest day
18Files available
2Days available
143.8 GBTotal size
Dataset Kind Format Rows Size Included in
2026-09-18  ·  73.6 GB  ·  checksums
Domains delta csv.zst 202,986,828 4.2 GB Basic+ Download
Domains delta json.zst 202,986,828 4.6 GB Basic+ Download
DNS delta csv.zst 807,363,559 10.6 GB Basic+ Download
DNS delta json.zst 807,363,559 11.0 GB Basic+ Download
DNS by vantage point delta csv.zst 931,896,413 10.7 GB Pro Download
DNS by vantage point delta json.zst 931,896,413 11.2 GB Pro Download
Certificates delta csv.zst 75,642,076 10.5 GB Pro Download
Certificates delta json.zst 75,642,076 10.9 GB Pro Download
2026-09-17  ·  70.2 GB  ·  checksums
Domains delta csv.zst 196,680,765 3.9 GB Basic+ Download
Domains delta json.zst 196,680,765 4.3 GB Basic+ Download
DNS delta csv.zst 708,669,426 9.0 GB Basic+ Download
DNS delta json.zst 708,669,426 9.4 GB Basic+ Download
DNS by vantage point delta csv.zst 770,462,245 9.0 GB Pro Download
DNS by vantage point delta json.zst 770,462,245 9.4 GB Pro Download
Certificates delta csv.zst 56,454,989 7.8 GB Pro Download
Certificates delta json.zst 56,454,989 8.1 GB Pro Download
Address history delta csv.zst 451,255,814 4.6 GB Pro Download
Address history delta json.zst 451,255,814 4.9 GB Pro Download

A file marked delta holds the records that changed since the previous file, applied as upserts; a snapshot is the whole corpus for that dataset, for seeding a new system. Seed from the latest snapshot, then apply the deltas dated after its as_of. One download per file per day, shared between this page and the API key, resetting at 00:00 UTC. Files stay on this page for 14 days; every file we publish is archived permanently. A Pro file needs a Pro plan; the plans are here.

What you get

The first line of every CSV names the columns, and the JSON file carries the same fields per line. Full meanings are on the file reference.

domains  Basic+
"domain","tld","registered","expires","registrar","ip","first_cert_seen","first_zone_seen","last_update"
"example-shop.com","com","2019-04-02T11:15:00Z","2027-04-02T11:15:00Z","GoDaddy.com, LLC","203.0.113.42","2026-09-06T06:22:11Z","","2026-09-16T04:11:50Z"

One row per registrable domain. Empty means we hold no value for that field, never a placeholder date. Columns.

dns  Basic+
"name","record_type","values","ttl","last_confirmed"
"aaa.aaa","NS","[""ns-1058.awsdns-04.org"",""ns-1680.awsdns-18.co.uk"",""ns-199.awsdns-24.com"",""ns-978.awsdns-58.net""]",172800,"2026-09-16T20:39:54Z"

One row per name and record type, merged across our resolvers. Arrays are JSON inside the CSV cell, so a doubled quote is an escaped quote. Columns.

dns_vantage  Pro
"name","record_type","vantage","values","ttl","last_seen","last_changed","changes"
"example-shop.com","TXT","fra","[""v=spf1 ip4:203.0.113.0\/24 -all""]",300,"2026-09-16T05:02:11Z","2026-08-30T17:40:02Z",1

The same answers unmerged, one row per resolver node, which is where GeoDNS shows up. Columns.

certificates  Pro
"cert_id","cert_sha256","serial","spki_sha256","issuer","issuer_org","subject_cn","key_alg","key_bits","signature_alg","sans","san_count","wildcard","ja4x","first_observed","last_observed","ct_logs_seen"
"9f53ecddf913afba5678c924a95149d2","3b1f...c2","0a1b2c","e3b0c442...","CN=YE2,O=Let's Encrypt,C=US","Let's Encrypt","example-shop.com","ECDSA",256,"SHA256-ECDSA","[""example-shop.com"",""www.example-shop.com""]",2,false,"2bab15409345_2bab15409345_a475d2a3f9e8","2026-09-14T22:03:19Z","2026-09-16T11:40:55Z",3

One row per certificate, covering a rolling 14 days in the database. Each daily file is archived permanently. sans is what links co-tenants behind one CDN certificate. Columns.

address_history  Pro
"domain","ip","first_seen","last_seen","observed","current"
"example-shop.com","203.0.113.42","2026-08-21T09:14:03Z","2026-09-16T22:41:50Z",37,true

Every address a domain has been on, including the ones it left. Columns.

Opening a .zst file

Zstandard, not gzip: smaller and much faster to decompress. Most data tools read it directly, so you rarely need to unpack it first.

# unpack, or stream the first rows without unpacking
zstd -d delta.domains.csv.zst
zstd -dc delta.domains.csv.zst | head -3

# read it where it lies
duckdb -c "SELECT * FROM read_csv('delta.domains.csv.zst') LIMIT 5"
python -c "import pandas; print(pandas.read_csv('delta.domains.csv.zst', nrows=5))"

Install with apt install zstd, brew install zstd or, on Windows, 7-Zip.

Basic+ means Basic, Plus and Pro all include that file. Pro means Pro only. Plus buys query capability rather than bulk, so it takes the same two files as Basic — see the plan comparison.

Verifying what you downloaded

Every day publishes a checksums.txt in sha256sum format, listing every file for that day. It needs no key, so you can check a file you already hold:

curl -sO https://issued.live/downloads/2026-09-18/checksums.txt
sha256sum -c checksums.txt

Do this. A truncated .zst still opens in some tools and DuckDB reads one without reporting an error, so a short file becomes missing rows rather than a failure. zstd -t catches a damaged or truncated file on its own — the digest is what tells you it is the right file, the one we published for that day, which is what you need if you ever have to show where a finding came from.

A file will look smaller on disk than it does here. Sizes on this page are decimal GB, the unit disks and bandwidth are sold in; ls -lh and du -h report GiB, which is about 7 per cent fewer of a bigger unit. A file listed here as 3.9 GB shows as 3.6G under ls. Both are the same file, and the checksum above settles it either way.

Subscribers get the same digest two other ways: the sha256 field on every entry of the file listing, and an X-Checksum-Sha256 header on the download itself. Do not verify against the object store's ETag — for a large multipart upload it is not the MD5 of the file, and it will not match.

Files are generated once a day from midnight US Eastern; the latest set finished 2026-09-19 11:42:56 UTC.

↑ Top