Every registered domain on the internet, in one file — that is what you are really after, and there is exactly one practical way to have it. Not a sample, not a single extension, not a scrape that dies at the first rate limit. You want the complete set of domains across every TLD — clean, current, and ready to query. Here is how you get it, and why building it yourself is a trap.
How big is a list of all registered domains?
Bigger than most people expect. Hundreds of millions of domains are registered across the world's TLDs right now, and the number moves every day as new names appear and old ones drop. That is not a file you keep in a spreadsheet; it is a serious dataset.
.com alone is past 160 million domains — roughly 40% of the whole namespace on its own. Add .net and .org, the newer extensions (.io, .ai, .xyz, .shop), and hundreds of country codes, and the full picture runs to hundreds of millions of individual domain names. That scale is exactly why a complete set of every domain is one of the most valuable datasets on the internet: it sits under sales pipelines, brand protection, security research, and market intelligence. It is also why nobody hands it out for free.
The .com question everyone starts with
Most people who want "all the domains" really start with .com, because .com is the market — at over 160 million names it dwarfs every other extension, and any serious plan has to handle it first. The good news: once you have the complete set, isolating it is a one-line filter. Every .com domain sits in the same file as every .net, .org, and country-code name, so you slice it out the moment you need it and keep the long tail for later.
That is the difference between a .com-only export and a complete dataset: with the whole set in hand, .com is a view, not a separate project — you never re-buy .net next quarter because the first file only covered one extension.
Why you cannot assemble it yourself
There is no master registry of everything. Each TLD runs on its own operator's infrastructure, under its own rules, in its own format — and the overwhelming majority never publish a usable feed at all. Stitching a complete, de-duplicated, current picture together across every one of them is not a weekend script; it is a standing data operation that most teams start, badly underestimate, and quietly abandon three months in. The ones who push through end up maintaining brittle scrapers, chasing format changes across dozens of registries, and explaining to their team why the domain list is a week out of date again.
That is the problem webatla already solved. Rather than burn a quarter chasing hundreds of incompatible sources and still ending up with gaps, you get one file that already holds every domain we track, refreshed daily.
What makes it a complete, usable set
A pile of raw registry dumps is not a dataset — it is homework. The value is in the work that turns hundreds of fragmented sources into one file you can actually query, and that is exactly what you are buying:
- Coverage — every TLD, from
.comand.netdown to the smallest country code, in a single set. Nothing missing because one registry was hard to reach. - De-duplication — one clean row per domain, no collisions from overlapping sources.
- Normalisation — a consistent schema across every extension, so
example.comandexample.co.ukparse the same way. - Freshness — rebuilt daily, so the set reflects the domains that exist today, not last quarter.
That combination is the difference between "I technically have the data" and "I can answer a question with it before lunch."
The whole set, in one file
webatla's full domains dataset is the list itself: every domain across every TLD, de-duplicated and normalised into one clean file, rebuilt every day. No applications, no approvals, no per-registry paperwork — buy it once and pull the entire namespace as fresh JSONL.
It is deliberately the cheapest, highest-volume product we sell, because it is the base everything else builds on: one flat price, a month of downloads, and every domain on your disk in minutes rather than months.
What each line looks like
Each line is one domain name, structured so you can filter and segment hundreds of millions of records without standing up a database. A single row is as simple as this:
{"domain": "example.com", "tld": "com", "suffix": "com", "domainType": "ICANN"}
| Field | Example | Use |
|---|---|---|
domain |
example.com |
the registration itself |
tld |
com |
filter by TLD |
suffix |
co.uk |
handle multi-level suffixes correctly |
domainType |
ICANN |
separate gTLD from private namespaces |
The base set tells you which domains exist. When you need the registration record behind each one — who owns it, when it was created, and through which registrar — layer the RDAP & WHOIS dataset. Add the DNS dataset for nameservers, or Technologies for what each site runs. Same set of domains, enriched from whatever angle you need.
Working with a file this large
Every webatla dataset ships as JSONL — one JSON object per line, the only format that scales to hundreds of millions of domains. It streams line by line and drops straight into jq, pandas, DuckDB, BigQuery, or Spark, so you never load the whole file into memory.
Rank every extension by domain count with one line of jq:
cat domains.jsonl | jq -r .tld | sort | uniq -c | sort -rn | head
Pull just the .com domains into their own file:
jq -c 'select(.tld == "com")' domains.jsonl > com.jsonl
Or query the whole set in place with DuckDB — no database, no index:
SELECT tld, count(*) AS domains
FROM 'domains.jsonl'
GROUP BY tld
ORDER BY domains DESC;
That single query turns the raw file into a per-extension map of the entire domain market in seconds. We ran the same data to break down DNS and registrar concentration and the fastest-growing TLDs of Q1 2026.
Who relies on a complete domains set
The teams that buy the full set of domains span every industry, but they share one problem: partial data quietly breaks their work, and the gaps stay invisible until something downstream goes wrong.
- Sales and go-to-market — a total-addressable-market view is only accurate if it starts from every domain. Filter to a
.comniche, a country code, or a technology footprint and you are prospecting the whole market, not a slice of it. - Brand and trademark teams — find every domain that contains your brand across all extensions, and a dormant
.comtypo-squat surfaces before it is weaponised. - Security and threat intel — sweep the whole namespace for phishing patterns, suspicious nameserver clusters, and new look-alikes that a partial feed would miss.
- Domain investors and registrars — track domain movement per extension over time and spot where demand is shifting.
- Data and ML teams — train and evaluate on a clean, deduplicated set of real domain names, not a scraped sample that skews the model.
Every one of these needs the same starting point: one complete, current set of domains you can trust, not a stale export or a half-finished scrape.
The real cost of an incomplete list
A partial list fails silently, and that is what makes it dangerous. A total-addressable-market number looks solid until you learn it was built from a fraction of the domains that actually exist. A brand sweep comes back clean — not because there are no look-alikes, but because the data never contained them. A model trains on a skewed sample and nobody notices until the predictions quietly drift.
Completeness is the whole point of a domains list, not a nice-to-have. A set that is missing the country codes, or last week's registrations, or the parked long tail, biases every count and every match built on top of it. Buying one authoritative file instead of stitching fragments together is exactly what removes that blind spot — one file, every domain, so the answer you get is the one that is actually true.
From file to first answer in minutes
There is no ETL project to run before you get value. You open one file, point jq or DuckDB at it, and you are querying the entire domain namespace immediately — count .com versus .net, isolate a country code, or pattern-match a brand across every extension in a single pass. Because it is plain JSONL, the same file feeds a Python notebook, a Spark job, or a BigQuery load without conversion. The gap between buying the data and answering a real question is measured in minutes, not sprints. That is the practical case for buying the set outright: the moment it lands it is already doing work, and your time goes to the analysis instead of the plumbing.
Always current, never stale
A domains file ages fast. Names are registered and dropped every minute, so a file from six months ago is mostly noise for anything time-sensitive — and the fresh domains that signal a launch or a campaign are exactly the ones a stale set misses. That is why the dataset is rebuilt daily and every export is versioned by date: you always know precisely what you are holding and when it was cut. If catching brand-new registrations the day they appear is the point, the Domain Investor dataset is built around fresh domains across every extension.
Frequently asked questions
How many registered domains are there?
Hundreds of millions across every extension combined, and the figure moves daily. .com alone is past 160 million — roughly 40% of the total. Because it changes constantly, a dated, daily-rebuilt set is the only version worth working from.
Can I download all .com domains on their own?
Yes. Filter the full dataset by tld == "com" and you have every .com domain in its own file. .com is the largest extension by a wide margin, so expect a big one — but it is a filter, not a separate purchase.
Does the file include more than .com?
Yes — .com is just the largest slice. The set spans .net, .org, .io, .ai, and every other extension down to the smallest country code, all in the same file.
Can I get only newly-registered domains? Yes — filter by registration date, or start from the Domain Investor dataset, which focuses on fresh registrations across TLDs.
What format is it, and how current? Clean JSONL, one domain per line, rebuilt daily and versioned by date — never a stale historical dump.
Can I use the full list commercially? Yes — sales, security, brand protection, research, and product features are all standard uses. One flat price covers a month of access for whatever you are building on top of the data.
What does it cost? One flat price for a month of access, no subscription. See pricing for the current figure; it is the lowest-cost way to put every domain on your disk.
Download the full list
Stop trying to reassemble the internet's domains one registry at a time — it is a project that never finishes. Download webatla's full domains dataset → and have every registered domain across every TLD, .com and the long tail alike, as clean, current JSONL today. Or browse all datasets to see everything you can layer on top. No registries to chase and no approvals to wait on — just the complete set of domains, working the moment it lands. It is the fastest path from "I need all the domains" to actually having them.