A census of the internet, on a research budget
The whole active-domain population, not a sample. 406M domains with DNS, technology and ranking as one file you can measure, cite and re-run. The starter census is €29. A free 10,000-row sample needs no account.
Measure the whole web, not a survey of it
Four aggregate recipes on the real schema. The first runs on the €29 census. The rest use all-data where a question needs more columns.
DomainTLDDomain typeCountry by IPTechnologiesDNS StatusPR valueHarmonic valueDomain creation date
Domains per TLD, the whole census
The simplest population measure, and it runs on the €29 starter set. Count every active domain by TLD.
zstdcat webatla-all-active-domains-2026-07-10.jsonl.zst |
jq -r '.TLD' |
sort | uniq -c | sort -rn > domains-by-tld.txt
Technology adoption across the population
How many sites run each technology, counted over the whole file. The technology field ships in two shapes, so branch on its JSON type.
WITH t AS ( SELECT CASE json_type("Technologies") WHEN 'ARRAY' THEN json_extract_string("Technologies", '$[*]') WHEN 'OBJECT' THEN json_keys("Technologies") ELSE []::VARCHAR[] END AS techs FROM read_json('webatla-all-data-2026-07-10.jsonl.zst', format='newline_delimited', compression='zstd', columns={'Technologies':'JSON'}) ) SELECT tech, count(*) AS sites FROM t, unnest(t.techs) AS u(tech) GROUP BY tech ORDER BY sites DESC LIMIT 25;
Where the web is hosted
Distribution of domains by hosting country, from the resolved IP. A one-line group-by over the whole export.
SELECT "Country by IP" AS country, count(*) AS domains FROM read_json('webatla-all-data-2026-07-10.jsonl.zst', format='newline_delimited', compression='zstd', columns={'Country by IP':'VARCHAR'}) WHERE country IS NOT NULL GROUP BY country ORDER BY domains DESC;
What share of the namespace resolves
A reproducible headline number. The percentage of tracked domains that currently answer in DNS, straight from the file.
SELECT "DNS Status" AS resolves, count(*) AS n, round(100.0*count(*)/sum(count(*)) OVER (), 2) AS pct FROM read_json('webatla-all-data-2026-07-10.jsonl.zst', format='newline_delimited', compression='zstd', columns={'DNS Status':'VARCHAR'}) GROUP BY resolves ORDER BY n DESC;
Every recipe runs on the sample and on the full file with no change. Report the number you get, and cite the dated file it came from.
Yes, you can publish what you find
The honest split for academic and market work.
Publish freely
- Aggregated statistics, tables, charts and maps
- Findings, methods and conclusions in a paper or report
- A handful of example domains to illustrate a point
- Derived indicators and indexes you compute
The work is yours. Cite the dataset and the snapshot date so others can line up their numbers with yours.
Start with the censusSharing the raw rows needs a word
- Posting the raw dataset as replication or supplementary data
- Redistributing whole or substantial parts of the file
That is redistribution, which needs a written agreement. If a journal requires open replication data, tell us. We would rather help you meet that than have you stuck.
Ask about academic termsWhat makes it good for research
Not another API you have to caveat in the methods section.
Population, not a sample
You measure every active domain we track, so your denominator is the real one. No sampling frame to defend to a reviewer.
A fixed, citable snapshot
Each export is dated. Cite the file and the date, and anyone can request the same snapshot and reproduce your table.
Cite exact numbers
The count is the count. 406,809,239 domains in this snapshot, not an estimate behind a rate limit that answers differently each run.
Fits a grant line
The starter census is €29 and everything joined is €599. That clears most thesis and departmental budgets without a procurement cycle.
Open, boring format
One JSON-per-line file. No proprietary reader to describe in the methods, no client to install on a locked-down machine.
Public records only
No contact PII: no names, emails or phone numbers. Registration, DNS and technology facts, the kind of data an ethics board waves through.
Where to start
Buy the smallest set that answers your question. Move up only when you need more columns.
all-active-domains, €29
The census. Every active domain with its TLD and type. Enough for population counts, TLD studies and coverage baselines.
technologies, €159
Detected stacks per domain for adoption studies across 3,042 technologies.
websites-ranking, €99
PageRank and harmonic authority for centrality and reach studies.
all-data, €599
Every column joined on one key. When your question spans DNS, WHOIS, technology and ranking at once.
Questions a reviewer would ask
Answered without hedging.
Is this the whole population or a sample?
The whole active-domain population we track, 406,809,239 domains in the current snapshot. Not a sample, so your rates and shares use the real denominator.
How do I make it reproducible?
Every export is dated in the filename. Cite the dataset and that date. The file is fixed, so the same snapshot produces the same numbers on any machine. If someone needs the exact snapshot you used, point them to us.
Can I publish the results?
Yes. Aggregated statistics, figures, derived indicators and conclusions are yours to publish. Sharing the raw rows as replication data is redistribution and needs a written agreement, and we are happy to arrange that for a journal requirement. See the split above.
What is the ethics and PII position?
Public registration, DNS and technology records only. No contact PII: no registrant names, emails or phone numbers. The design is deliberate, which usually makes the ethics review short.
Is the methodology documented?
One stable, documented schema across every dataset, with the same keys on every line. The ranking signals, PageRank and harmonic centrality, are computed by us across the graph we index.
Run your first measurement for free
10,000 real rows, no account. If the numbers hold up, the full census is €29 and every column is €599.